Вычисление выражения Java

#java #parsing #evaluation #evaluate

#java #синтаксический анализ #вычисление #вычислять

Вопрос:

Я пытаюсь разработать анализатор для анализа простых логических выражений отношений, который включает «(«, «)», «>», «<«, «,» как токен. Примером может быть:

 a < (b > c > (x, y, z))
  

Из приведенного выше выражения я бы вывел, что:

  1. a полагается на b
  2. b является предварительным условием c
  3. x, y и z зависят от c независимо
  4. между a и c нет никакой связи
  5. между a, x, y и z нет никакой связи

Существует ли какой-либо инструмент для поддержки такого рода синтаксического анализа?

спасибо, Грин

Ответ №1:

Вы можете попробовать JavaCC .. К этому немного сложно привыкнуть, но как только вы освоите его, вы сможете легко создавать такие анализаторы. Вы можете начать, следуя этому руководству. Также доступен плагин eclipse, который облегчает его использование для генерации необходимых файлов и так далее.

Ответ №2:

Я думаю, что самым известным инструментом для таких вещей является ANTLR.