diff options
Diffstat (limited to 'src/parser.js')
| -rw-r--r-- | src/parser.js | 53 |
1 files changed, 18 insertions, 35 deletions
diff --git a/src/parser.js b/src/parser.js index 8d7e607c..59d7899a 100644 --- a/src/parser.js +++ b/src/parser.js @@ -240,22 +240,29 @@ function parser(text, json){ function (){ throwError("is not valid json", {text:text, index:0}); }; } return { - assertAllConsumed: assertAllConsumed, - assignable: assignable, - primary: primary, - statements: statements, - validator: validator, - formatter: formatter, - filter: filter, - //TODO: delete me, since having watch in UI is logic in UI. (leftover form getangular) - watch: watch + assignable: assertConsumed(assignable), + primary: assertConsumed(primary), + statements: assertConsumed(statements), + validator: assertConsumed(validator), + formatter: assertConsumed(formatter), + filter: assertConsumed(filter) }; + function assertConsumed(fn) { + return function(){ + var value = fn(); + if (tokens.length !== 0) { + throwError("is an unexpected token", tokens[0]); + } + return value; + }; + } + /////////////////////////////////// function throwError(msg, token) { - throw Error("Parse Error: Token '" + token.text + + throw Error("Syntax Error: Token '" + token.text + "' " + msg + " at column " + - (token.index + 1) + " of expression [" + + (token.index + 1) + " of the expression [" + text + "] starting at [" + text.substring(token.index) + "]."); } @@ -313,12 +320,6 @@ function parser(text, json){ return tokens.length > 0; } - function assertAllConsumed(){ - if (tokens.length !== 0) { - throwError("is extra token not part of expression", tokens[0]); - } - } - function statements(){ var statements = []; while(true) { @@ -639,24 +640,6 @@ function parser(text, json){ }; } - //TODO: delete me, since having watch in UI is logic in UI. (leftover form getangular) - function watch () { - var decl = []; - while(hasTokens()) { - decl.push(watchDecl()); - if (!expect(';')) { - assertAllConsumed(); - } - } - assertAllConsumed(); - return function (self){ - for ( var i = 0; i < decl.length; i++) { - var d = decl[i](self); - self.addListener(d.name, d.fn); - } - }; - } - function watchDecl () { var anchorName = expect().text; consume(":"); |
