2014-02-03 2 views
0

Я пытаюсь создать парсер javaCC, который будет вести себя по-разному в двух блоках кода для настраиваемого плагина NetBeans, однако я не могу даже распознать два состояния. Я не знаю, что я делаю неправильно.Переключение между лексическими состояниями в javaCC

<DEFAULT,STATE1> 
SKIP : { 
    " " 
| "\t" 
| "\n" 
| "\r" 
} 
TOKEN : { 
    < A1: "a"> : STATE1 
} 
<STATE1> TOKEN : { 
    < B2: "b" > : DEFAULT 
} 

Этот простой синтаксический анализатор не анализирует строку «Абаб ..».

ответ

1

Нет правила для "."; поэтому после разбора «abab» лексер застревает. Вот почему в сообщении об ошибке говорится «Лексическая ошибка в строке 1, столбец 5. Обнаружен:«. » (46), после: «« Если вы добавите

| "." 

к первому правилу, он будет работать.

 Смежные вопросы

  • Нет связанных вопросов^_^