[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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容