npm install antlr4
或者在项目文件夹执行:
npm install antlr4 --save-dev
算数表达式语法文件 Arithmetic.g4:
grammar Arithmetic;
expression : expression ('+'|'-') term
| term;
term : term ('*'|'/') factor
| factor;
factor : NUMBER
| '(' expression ')';
NUMBER : [0-9]+ ;
antlr4 -Dlanguage=JavaScript Arithmetic.g4
将生成以下文件:
示例代码:
const antlr4 = require('antlr4');
const ArithmeticLexer = require('./ArithmeticLexer');
const ArithmeticParser = require('./ArithmeticParser');
// input: "1+(2*3)\n"
const input = new antlr4.InputStream('1+(2*3)\n');
// 创建词法解析器
const lexer = new ArithmeticLexer.ArithmeticLexer(input);
const tokens = new antlr4.CommonTokenStream(lexer);
// 创建语法解析器
const parser = new ArithmeticParser.ArithmeticParser(tokens);
parser.buildParseTrees = true;
// 解析输入文本得到AST
const tree = parser.expression();
console.log(tree.toStringTree());
// 将AST转化为其他形
下一篇:ANTRL4解析错误。