Bison 简单上手
/ / 点击 / 阅读耗时 1 分钟Bison的文档十分详细,也可以说是冗长,故而此处对其中的一些核心机制做一个简单的总结。
Actions
可以像flex中一样为rules添加Action,在规则之后的一个block中定义语法。
bison中提供了机制实现semantic value的计算。使用$$$$可以访问起始符的值(规则左边的non terminal),$n
可以访问第n个non terminal的值,此处n从1开始。如果n小于等于0,则使用当前parse stack上的非终结符值(risky)。
Bison Decalrations
Token Kind Names
对于terminal的声明。
Operator Precedence
对于优先级的声明。
使用%left 表示优先左结合,%right同理。
Nonterminal Symbols
感谢阅读!欢迎评论嗷~