我希望为现有语言创建一个JavaScript解析器,它目前拥有笨拙的“手工制作”C#和Java解析器。我想使用Jison,并且一直在努力学习Bison的基础知识。
我不确定如何回答的一个问题是Bison / Jison的输出究竟是什么?我是否自动获得任何信息(例如AST)?或者使用编写野牛文件的人使用规则操作完成所有操作。因此,例如,如果我有一个规则指定符合规则的新变量赋值:
VariableStatement :VAR VariableDeclarationList';'
我是否必须指定一个操作,例如{var var1 = {name:$ 1,value:$ 2}(好吧,不适用于此特定规则,但假设$ 2是某些终端令牌)要在javascript中运行由Jison生成的文件实际创建新变量?或者我弄错了。
谢谢!
答案 0 :(得分:5)
您唯一自动获得的是语法错误。换句话说,如果你不提供动作,那么野牛生成的代码将验证输入是否与语法相对应,而不是其他内容。