Я пытаюсь написать грамматику ANTLR4 для анализа actionscript3. Я решил начать с чего-нибудь довольно грубого:
grammar actionscriptGrammar;
OBRACE:'{';
CBRACE:'}';
STRING_DELIM:'"';
BLOCK_COMMENT : '/*' .*? '*/' -> skip;
EOL_COMMENT : '//' .*? '/n' -> skip;
WS: [ \n\t\r]+ -> skip;
TEXT: ~[{} \n\t\r"]+;
thing
: TEXT
| string_literal
| OBRACE thing+? CBRACE;
string_literal : STRING_DELIM .+? STRING_DELIM;
start_rule
: thing+?;
По сути, мне нужно дерево вещей, сгруппированных по их лексическому объему. Я хочу, чтобы комментарии игнорировались, а строковые литералы были их собственными вещами, чтобы любые фигурные скобки, которые они могут включать, не влияли на лексическую область видимости. Правило string_literal работает нормально (например, оно есть), но два правила комментариев не имеют никакого эффекта. (т.е. комментарии не игнорируются).
Что мне не хватает?