Задание - альтернатива Shell. Не нужно делать оба. Только для группы 394.
Консольное приложение, на вход принимает выражение как параметр :
java Calculator "-(3 + 5.5) * 2 - 20/(15 - 5)"
Результат работы приложения -- результат выражения:
-19
Поддерживаемые операции: + - * /
. Приоритет операций -- математический
(скобки, потом унарное отрицание, потом умножение/деление, потом сложение/вычитание).
В случае неправильных входных данных приложение должно вывести понятное описание ошибки.
Ограничения: не использовать встроенные скриптовые движки и кодо- или байткод генерацию.
Одним словом, парсить вручную.