这段文法与Linux Bison手册非常类似,不同之处在于它使用了名字作为终端符号和标识符的简写形式。标识符是在赋值语句中进行定义和初始化的,并且可以在任何允许使用的地方使用。下面给出了一个示例声明和文法。
Linux Bison声明
- /*terminalsymbols*/
- %token<string>IDENTIFIER
- %token<value>VALUE
- %type<value>expression
- /*operator-precedence
- *top-0:-
- *1:*/
- *2:+-
- */
- %leftADDSUB
- %leftMULTDIV
- %leftNEG
- %startprogram
示例Linux Bison文法
- program
- :statementSEMICOLONprogram
- |statementSEMICOLON
- |statementerrorSEMICOLONprogram
- ;
- statement
- :IDENTIFIERASSIGNexpression
- |expression
- ;
- expression
- :LBRACEexpressionRBRACE
- |SUBexpression%precNEG
- |expressionADDexpression
- |expressionSUBexpression
- |expressionMULTexpression
- |expressionDIVexpression
- |VALUE
- |IDENTIFIER
- ;
【编辑推荐】
- Linux Bash命令关于程序调试详解
- Linux Bash命令关于快捷键应用
- Linux Bash Shell系统的应用详解
- Linux Bash具体安装步骤及使用介绍
- Linux Bash命令查询相关事件详解
推荐阅读
尽管使用Flex和Linux Bison生成程序非常简单,但是要让这些程序产生用户友好的语法和语义错误消息却很困难。本文将介绍Flex和Linux Bison的错误处理特性,并展示如何使用它们,然后详细介绍它们的一些缺陷。简介 正>>>详细阅读
本文标题:Linux Bison声明和文法
地址:http://www.17bianji.com/yunwei/1965.html
1/2 1