我使用ANTLRWorks的调试模式来测试我的C-语法。 调试中ANTLRWorks是为了更好的理解真的很棒,但我理解输出树的不同颜色的问题。 我使用的是backtrack=true
在我的语法。 我认为红色意味着调试器进入错误的方式,而绿色的告诉我,这是已经在正确的道路。 但对于暗红色和深绿色?
我添加了一个“小树”,只有符合下列输入的图片:
int test;
如果一定要回答的问题是必要的,下面是其中使用了4条最重要的规则。
start
: declaration*
;
declaration
: functionDefinition
| dataDeclaration //also used for Function Declaration
| assemblerDefinition
;
functionDefinition
: declarationSpecifier* declarator Equals Default Semi
| declarationSpecifier* declarator Equals Delete Semi
| declarationSpecifier* declarator functionBody
;
dataDeclaration
:declarationSpecifier* declarator initializer? (Comma declarator initializer?)* Semi
;