Префикс Postfix Infix Оценщик выражений Java - PullRequest
3 голосов
/ 17 января 2012

Я работал над оценщиком выражений в Java, и из-за разочарования я также пришел сюда, чтобы спросить об этом. Я переписал его по крайней мере 15 раз и каждый безрезультатно.

В основном мне нужно взять строку в префиксе, инфиксе или постфиксе и преобразовать ее в целое число. Выражение может использовать любые арифметические операторы, включенные в Java.

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

Так что в основном программа должна сделать это:

Для любых произвольных чисел A B C D E F

Оценка в префиксе: постфикс и инфикс:

A-- + ++ B - --C * D ++ / E% F

Для любых произвольных битов A B C D E F G и числа n

Оценка в префиксе, постфиксе и инфиксе: A & B | C ^ ~ D

n >> A

n << A </p>

Мой учебник не сильно помогает, и книги, которые я заказал, я действительно не могу понять, как это сделать, помогите, даже просто объяснение того, как это сделать, было бы достаточно для меня. Спасибо за любую помощь: D

1 Ответ

1 голос
/ 17 января 2012

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

...