我想解析一些C++代码,作为指南,我一直在查看这里的C lex/yacc定义:http://www.lysator.liu.se/c/ANSI-C-grammar-l.html和http://www.lysator.liu.se/c/ANSI-C-grammar-y.html。
我理解标记本身的规范,但不理解它们之间的交互。例如,直接在标识符后面没有中间空格就可以有一个操作符(即“foo=”),但是数字常量紧接着标识符就不行(即123foo)。然而,我没有看到这种规则的表示方式。
我错过了什么?还是这个lex/yacc在错误接受方面太自由了?
我理解标记本身的规范,但不理解它们之间的交互。例如,直接在标识符后面没有中间空格就可以有一个操作符(即“foo=”),但是数字常量紧接着标识符就不行(即123foo)。然而,我没有看到这种规则的表示方式。
我错过了什么?还是这个lex/yacc在错误接受方面太自由了?