1
我有一個簡單Antlr4語法:如何跳過解析器規則無用節點
grammar: test;
expression:
IF LPAREN logical ',' otherrule',' otherrule RPAREN # myExpression
logical:
......;
otherrule:
......;
IF: 'if';
LPAREN : '(';
RPAREN : ')';
WS: (' ' | '\t' | '\r' | '\n')->channel(HIDDEN);
當我使用這個語法解析:
if(a>b, 1, 2)
實例MyExpressionContext將有8個孩子:
1 if
2 (
3 a>b
4 ,
5 1
6 ,
7 2
8)
但是我不需要()和那些類型的分隔符,我怎樣才能讓孩子只有這些?
1 if
2 a>b
3 1
4 2
好的解釋!謝謝你,帕特里克!似乎沒有辦法有選擇地刪除它們。我只是讓他們不被刪除,讓自己的邏輯來處理他們。 – Gisway