Пропуск блоков кода в antlr4 - PullRequest
0 голосов
/ 30 апреля 2018

Например, программа: у меня есть файл грамматики следующим образом:

grammar fileName;

program : 'start' statements+ 'end';

statements : print;

print: 'output' STRING;

STRING : ["] ( ~["\r\n\\] | '\\' ~[\r\n] )* ["] | ['] ( ~['\r\n\\] | '\\' ~[\r\n] )* ['];

Теперь у меня есть следующий код:

begin
  output "Hello World"
end

begin
  output "Hello World 2"
end

Теперь после этого я хочу проверить, является ли строка вывода Hello World 2, пропустить ее, не анализировать блок 'Statement' и двигаться дальше.

Можно ли сделать так, чтобы antlr4 пропускал парсинг блока кода в классе слушателя?

PS: я задаю этот вопрос, чтобы я мог реализовать его с помощью своих операторов if, while, for и foreach. Например, пропуская блок кода, когда оператор if возвращает false, я просто использую этот код в качестве примера. Спасибо!

...