我正在使用 ANTLR 来解析自定义数据定义语言。我使用 C 作为语言,我正在输出一个抽象语法树。到目前为止一切顺利,但现在我需要添加文档并且我需要允许以下形式的块:
DOC
Free text here
ENDDOC
我尝试添加一条规则:
docstm : 'DOC' ContentDoc=(.*) 'ENDDOC' -> ^(T_DOCCLASS $ContentDoc);
其中T_DOCCLASS
是节中定义的虚构标记tokens {...}
。不幸的是,虽然块的解析DOC ... ENDDOC
没有失败,但树只有T_DOCCLASS
没有任何子节点。
其他附加信息:我正在使用 ANTLR 3.2 和以下前奏:
options {
output = AST;
language = C;
ASTLabelType = pANTLR3_BASE_TREE;
}
而且我还有另一个跳过空格的规则:
WS : ( ' '
| '\t'
| '\r'
| '\n'
) {$channel=HIDDEN;}
;
提前感谢您可以给我的任何建议。