0
Я написал инструкцию if в javacc и не знаю, как игнорировать, если тело является ложным Сначала я объявляю два класса объектов Token и логическую переменную, затем я проверяю, что возвращает метод condition(), next Я хочу пропустить остаток блока, когда условие ложно. Как это сделать?javacc if statement
void ifElse() :
{
Token start;
Token next;
boolean cond = false;
}
{
{
start = token;
}
<IF> < LB> cond = condition() < RB> < LP>
{
if (cond == false)
{
String tok = (String) token.image;
while (tok.equals("}"))
{
token = token.next;
}
}
}
(
ifElse()
| declaration()
)*
< RP>
(<ELSE> < LP> <RP>)?
}
Нет, вы этого не сделаете, вы хотите скомпилировать его. Вы разбираетесь, а не выполняете. – EJP
@EJP Можете ли вы рассказать мне более четко? Я знаю, что строит синтаксический анализ, но он работает неправильно. – quba88
Только если вы думаете, что он должен «пропустить остальную часть блока, когда условие ложно». Вы путаете парсинг с исполнением. Парсер должен обрабатывать всю программу, а не только нужные вам биты. Я не знаю, как выразить это более ясно. – EJP