ANTLRを使用してカスタムデータ定義言語を解析しています。言語としてCを使用しており、抽象構文木を出力しています。これまでのところ良好ですが、ドキュメントを追加する必要があり、フォームのブロックを許可する必要があります。
DOC
Free text here
ENDDOC
ルールを追加してみました:
docstm : 'DOC' ContentDoc=(.*) 'ENDDOC' -> ^(T_DOCCLASS $ContentDoc);
ここT_DOCCLASS
で、はセクションで定義された架空のトークンtokens {...}
です。残念ながら、DOC ... ENDDOC
ブロックの解析は失敗しませんが、ツリーにはT_DOCCLASS
子ノードがないだけです。
その他の追加情報:ANTLR3.2と次のプレリュードを使用しています:
options {
output = AST;
language = C;
ASTLabelType = pANTLR3_BASE_TREE;
}
また、withespacesをスキップするための別のルールがあります。
WS : ( ' '
| '\t'
| '\r'
| '\n'
) {$channel=HIDDEN;}
;
あなたが私に与えることができるどんな提案にも前もって感謝します。