Как обновить и распечатать токен Rational в javacc? - PullRequest
1 голос
/ 25 февраля 2010

Я добавил новый токен RATIONAL, который распознает рациональные числа в моем анализаторе JavaCC.Как я могу обновить выходную часть программы, чтобы напечатать числовое значение рационального числа?

Например (2/5) значение = 0,4, (8/2) значение = 4,0('4/0') значение = бесконечность.

Буду благодарен, если кто-нибудь сможет мне помочь.Спасибо.

1 Ответ

1 голос
/ 15 марта 2011

Вам необходимо дополнительно разделить изображение вашего токена RATIONAL, чтобы оба числа были доступны для вычисления.

Из вашего вопроса не ясно, являются ли скобки и кавычки частью определенного синтаксиса. Если они есть, вы можете легко определить их как разделители для рационального выражения и определить токены для чисел и косой черты. В случае двусмысленности с другими местами, где могут появляться числа, помните, что лексические состояния - ваши друзья.

Если рациональное выражение просто состоит из двух чисел, разделенных косой чертой, то я бы порекомендовал создать AST и оценить его после завершения анализа. Вы также можете оценить его во время анализа, но сложность этого зависит от остальной части вашей грамматики.

...