Парсинг вводимой формулы для функции

512
17 февраля 2017, 02:00

Написал программу для отрисовки графиков вводимых функций, осталось научить компьютер понимать введённую функцию и передавать её на отрисовку. Читал, что

Самостоятельное писание парсера считается дурным тоном

Но, мне нельзя использовать любые сторонние библиотеки, тем более, готовые программы (потому гуглить "math parser", скачивать и встраивать в программу я не смогу).

Какой алгоритм для парсинга математических формул для функций наиболее простой и, в то же время, действенный? Хочу сам разобраться и написать, тем более, по другому не смогу. Видел вот этот вариант, но он показался мне не самым лучшим, хотя метод хороший, (самому подобная идея и приходила в голову), да и с тем количеством функций и операций, которые мне нужно будет распознать, длина парсера будет раз в 10 больше, чем весь остальной код программы. Уверен, что есть вариант попроще и покороче. Буду признателен за помощь :)
Краткая суть вопроса: String -> parser -> готовая функция для отрисовки графиком.

Answer 1

Самое грамотное решение, которое я встречал при решении задач парсинга формул, собственных DSL, и прочих полезных штук - это ANTLR. Если кратко, то при помощи ANTLR Вы сможете описать грамматику, при помощи которой можно будет построить AST дерево Вашей формулы. Возможно для Вашей задачи уже есть грамматика, написанная кем то. Тогда Вам останется только прогнать ее через ANTLR и у Вас на руках будут java классы для парсинга и разбора AST дерева.

READ ALSO
Как запустить заданный класс в JAR-файле?

Как запустить заданный класс в JAR-файле?

В JAR-файле (Testjar) есть несколько классов с методом main (Class1, Class2)

329
Библиотека аннотаций Spring

Библиотека аннотаций Spring

Начал изучать Spring и начинаю понимать, чтобы хорошо писать надо разобраться в кишках SpringНа данный момент проблема с аннотациями

362
Android.Download Manager

Android.Download Manager

ЗдравствуйтеВот код, в котором я загружаю файл в папку "Загрузки":

331