Я использую ANTLR для анализа языка пользовательских данных. Я использую C как язык, и я выводил абстрактное синтаксическое дерево. До сих пор так хорошо, но теперь мне нужно добавить документацию и мне нужно, чтобы блоки формы:Проводя комментарий с помощью antlr
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;
}
и у меня есть еще одно правило для пропуска withespaces:
WS : (' '
| '\t'
| '\r'
| '\n'
) {$channel=HIDDEN;}
;
Заранее спасибо за любые предложения вы можете дать мне.
Какой вопрос? Попытайтесь прекратить хотя бы одно предложение с вопросительным знаком. – ceving
@ceving, хотя фактического вопросительного знака нет, ясно, что пытается сделать OP (по крайней мере, ясно, если вы немного знаете ANTLR). –