Имам граматика, която работи с v3, и сега се опитвам да мигрирам към v4. Взех някои подсказки от въпроси 18431158 и 14778570, но имам още един въпрос:
В моя v3 код преброих номерата на редовете по този начин (newLine() просто поддържа броя на анализираните редове и го записва, така че по-късно, когато се опитам да докладвам някои семантични грешки, да мога да докладвам и съответния номер на ред):
COMMENT : '/*' ( options {greedy=false;} :
(
'\n' {newLine();}
| ~ '\n'
) )* '*/' {$channel=HIDDEN;}
;
LINE_COMMENT : '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN; newLine();} ;
WS: (
' '
|'\r'
|'\t'
|'\n' {newLine();}
)+ {$channel=HIDDEN;};
Във v4 действията на лексера не са разрешени вътре. Как да мигрирам този код към v4?