Hello,
I am using Antlr 4.7 to generate a JavaScript lexer/parser. I am getting the
this.tokenSource.nextToken is not a function error for even the simplest grammar, taken from the Antlr homepage:
Grammar
grammar JASS;
prog: (expr NEWLINE)* ;
expr: expr ('*'|'/') expr
| expr ('+'|'-') expr
| INT
| '(' expr ')'
;
NEWLINE : [\r\n]+ ;
INT : [0-9]+ ;
Code
var input = '100+2*34';
var chars = new antlr4.InputStream(input);
var lexer = JASSLexer.JASSLexer(chars);
var tokens = new antlr4.CommonTokenStream(lexer);
var parser = new JASSParser.JASSParser(tokens);
parser.buildParseTrees = true;
var tree = parser.prog();
Error traceTypeError: this.tokenSource.nextToken is not a function
at CommonTokenStream.BufferedTokenStream.fetch (C:\Users\Greg\Desktop\JASS\node_modules\antlr4\BufferedTokenStream.js:140:28)
at CommonTokenStream.BufferedTokenStream.sync (C:\Users\Greg\Desktop\JASS\node_modules\antlr4\BufferedTokenStream.js:125:22)
at CommonTokenStream.BufferedTokenStream.setup (C:\Users\Greg\Desktop\JASS\node_modules\antlr4\BufferedTokenStream.js:228:7)
at CommonTokenStream.BufferedTokenStream.lazyInit (C:\Users\Greg\Desktop\JASS\node_modules\antlr4\BufferedTokenStream.js:223:8)
at CommonTokenStream.LT (C:\Users\Greg\Desktop\JASS\node_modules\antlr4\CommonTokenStream.js:68:10)
at JASSParser.Parser.enterRule (C:\Users\Greg\Desktop\JASS\node_modules\antlr4\Parser.js:416:32)
at JASSParser.prog (C:\Users\Greg\Desktop\JASS\syntax\JASSParser.js:147:10)
at Object.<anonymous> (C:\Users\Greg\Desktop\JASS\index.js:16:19)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
Any ideas? I've tried following each error up the call stack, but am not familiar enough with the code to know the issue here. Thanks in advance.