Я пытаюсь выяснить способы анализа выражения, которое использует все бинарные операторы. Каждый оператор окружен ровно одним набором скобок, таким образом:
5x^2 + 3x + 2
будет
((5*(x^2))+((3*x)+2))
и принимается в качестве аргумента args [] (что более важно, он задается в виде строки).
Я рекурсивно разбираю это, где каждая рекурсия разбивает левую часть верхнего бинарного оператора и вызывает рекурсию с этим выражением в качестве аргумента, а затем снова с правым. Базовый случай - когда передаваемое выражение не содержит операторов.
У меня проблема в том, что я правильно разбираю левую и правую стороны. Я пытаюсь разработать способ, основанный на сканере, который подсчитывает общее количество скобок, но не может определить окончательное решение. У любого есть идея, как правильно разобрать это, чтобы передать это как выражение рекурсивному методу.
P.s. - Я использую язык * Java
EDIT ::::
Я использую этот синтаксический анализатор как часть графопостроителя графического интерфейса, поэтому я бы установил переменную (x) в зависимости от того, какое значение оси x я в данный момент ищу на графике графического интерфейса. Таким образом, выражение, анализируемое в программе (как показано во втором кодовом теге выше), будет разбито и использовано для получения окончательного значения "y", которое будет соответствовать позиции в окне, где будет использоваться маленькая точка представлять эту точку на линии графика.
Может быть, это лучше объяснит, как я пытаюсь это использовать.