diff --git a/Lexer.js b/Lexer.js index dadaa68ad..c4cc02608 100644 --- a/Lexer.js +++ b/Lexer.js @@ -62,7 +62,7 @@ Lexer.prototype.lex = function(pos) { } // We didn't match any of the tokens, so throw an error. - throw "Unexpected character: '" + input[0] + "' at position " + this._pos; + throw "Unexpected character: '" + input[0] + "' at position " + pos; }; module.exports = Lexer; diff --git a/Parser.js b/Parser.js index 71b84eedb..a971f8ea2 100644 --- a/Parser.js +++ b/Parser.js @@ -337,7 +337,7 @@ Parser.prototype.parseNucleus = function(pos) { var group = this.parseGroup(nucleus.position); if (group) { return new ParseResult( - new ParseNode(nucleus.type.slice(1), nucleus.text), + new ParseNode(nucleus.type.slice(1), group.result), group.position); } else { throw "Parse error: Expected group after '" + nucleus.text + "'"; diff --git a/katex.js b/katex.js index 9413e9c90..48f54c2fc 100644 --- a/katex.js +++ b/katex.js @@ -129,10 +129,10 @@ var buildGroup = function(style, color, group, prev) { return makeSpan("mord mspace " + spacingClassMap[group.value]); } } else if (group.type === "llap") { - var inner = makeSpan("", buildExpression(style, color, group.value)); + var inner = makeSpan("", [buildGroup(style, color, group.value)]); return makeSpan("llap " + style.cls(), [inner]); } else if (group.type === "rlap") { - var inner = makeSpan("", buildExpression(style, color, group.value)); + var inner = makeSpan("", [buildGroup(style, color, group.value)]); return makeSpan("rlap " + style.cls(), [inner]); } else if (group.type === "punct") { return makeSpan("mpunct" + color, [textit(group.value)]);