javacc игнорировать регистр локально?

Я хочу сделать часть моих определений JavaCC регистронезависимой, но не глобально.

TOKEN [IGNORE_CASE]:
{
  < STRA : "a" >
}
TOKEN :
{
  < STRB : "b" >
}

Выше, кажется, делает все токены (STRA AND STRB) нечувствительными к регистру. Как сделать так, чтобы только STRB игнорировался?

Кроме того, можно ли сделать следующий регистр нечувствительным к регистру, например, только "b = <...>"?

private void expr() : 
{
  Token a, b;
}
{
  a = < STRA > | b = < STRB>
}

Я признаю, что не могу понять это, прочитав руководство. Пожалуйста, помогите мне. Дайте мне знать, если я не объясню четко. Спасибо.

1 ответ

Составьте отдельный список токенов, чувствительных к регистру и игнорируйте токены, тогда вам не нужно объявлять оператор глобально как Ignore case = true. попробуйте код, как показано ниже,

TOKEN [IGNORE_CASE]: {
 < STRB : "b" >
}

TOKEN : {
  < STRA : "a" >
}
Другие вопросы по тегам