ANTLR 4: как узнать о существовании подраздела в правиле

У меня есть этот код:

varDeclaration
    :   type ID ('=' expression)? ';' 
    ;

Итак, не всегда ('=' expression) существует. Но иногда я хочу обработать эту часть, но не знаю, существует она или нет в этом контексте. Я использую ANTLR 4 (и часто использую Listener), откуда я могу это знать.

Спасибо :)


person hqt    schedule 06.05.2013    source источник


Ответы (1)


В вашем слушателе (exitVarDeclaration) или посетителе (visitVarDeclaration) проверьте, не ctx.expression() == null. Если ноль, то ('=' expression) не существует. Если ненулевое, то оно существовало.

person javic    schedule 06.05.2013