(1)安装pegjs
npm install pegjs
(2)grammer.pegjs
start
= additive
additive
= left:multiplicative "+" right:additive { return left + right; }
/ multiplicative
multiplicative
= left:primary "*" right:multiplicative { return left * right; }
/ primary
primary
= integer
/ "(" additive:additive ")" { return additive; }
integer "integer"
= digits:[0-9]+ { return parseInt(digits.join(""), 10); }
(3)main.js
var fs=require('fs');
var PEG=require("pegjs");
fs.readFile('./grammer.pegjs','utf8',function(err,data){
var parser=PEG.buildParser(data);
var result=parser.parse('1+2*3');
console.log(result); // 7
});
注:
如果需要pegjs命令行工具,需要项目和全局都要安装pegjs
npm install pegjs -g
npm install pegjs
pegjs grammer.pegjs parser.js
可以生成一个parser,parser.js
var parser=require('./parser.js');
parser.parse('1+2*3'); // 7
网友评论