Как я могу реализовать управление потоком (* выполнение * if-else, для ... while ....) в ANTLR? - PullRequest
2 голосов
/ 30 апреля 2011

Я новичок в ANTLR, у меня есть 2 книги его создателя, и я читаю много постов в блогах / форумах, но мне кажется, что я просто не понимаю сейчас.

ВсеЯ могу найти грамматический код для этого и древовидный грамматический код для этого, но я просто не могу понять, как именно из этого сделан поток управления.

Потому что я полагаю, что не могу поставить свойвопрос достаточно ясен для вас, позвольте мне выразиться так:

Не могли бы вы показать мне весь необходимый код, который при передаче в синтаксический анализатор

for (i=0; i!=3; i=i+1) {
   if (i==2) print i;
   else print "not 2";
}

выдаст:

not 2  
not 2  
2

Желательно в Java.

Редактировать: Я нашел небольшой проект, размещенный на code.google.com, который использует ANTLR, и на его основе я понял, насколько глупым является мой вопрос!:)

1 Ответ

2 голосов
/ 30 апреля 2011

Как сканер / парсер, Antlr реализует только то, что мы называем интерфейсом компилятора.Задача Antlr состоит в том, чтобы взять текст произвольной формы и превратить его в структуру данных, с которой легко работать программам - особенно бэкэндам компилятора.боюсь, твоя работа!

...