2012-04-08 2 views
1

Ищу переводчика и/или структура данных в Java, который может обрабатывать строки, как:переводчик и структура данных для анализа (String) Уравнение

x^2+y^2+z^2 = 1" 

и интерпретирует его +, -, = разделителей, а затем с другие операции, такие как ^.

Это все для проекта 3D-графика, поэтому я также ищу инструмент, который может изолировать одну из переменных в такой строковой/datastructure.

Если вы знаете о такой структуре/intrereter/tool или имеете какие-либо идеи о том, как реализовать это, я хотел бы услышать ваши мысли.

Заранее благодарен.

ответ

2

Выражения, подобные этому, могут быть проанализированы с использованием recursive descent parser. Парсер может быть написан напрямую, или если грамматика становится сложной, с генератором синтаксического анализатора, таким как antlr. Выражение может быть преобразовано в абстрактное синтаксическое дерево или оценено по мере его анализа.

+1

http://parboiled.org намного проще в использовании, чем ANTLR для синтаксического анализа/AST. –