[Node.js] PEGjs

(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

你可能感兴趣的:([Node.js] PEGjs)