Вопросы по теме 'shunting-yard'

Есть ли простой способ токенизировать строку без полноценного лексера?
Я пытаюсь реализовать алгоритм маневровой станции , но мне нужна помощь в определении как лучше всего разделить строку на ее токены. Если вы заметили, первым шагом алгоритма является «чтение токена». Это не совсем нетривиальная вещь. Токены...
1037 просмотров

Какая из следующих постфиксных нотаций правильно представляет сумму инфиксов 1+2+3+4?
Я тестирую конвертер инфикс-постфикс-инфикс и обнаружил некоторую неопределенность. Например, простая инфиксная сумма 1 + 2 + 3 + 4 можно преобразовать в постфиксный 1 2 + 3 + 4 + предполагая, что операторы с одинаковым приоритетом не...
1198 просмотров

Пытаюсь написать парсер
Я пытаюсь разобрать синтаксис с помощью алгоритма Shunting Yard (SY). Синтаксис включает в себя следующие команды (хотя их много, много других!) a + b // a and b are numbers setxy c d //c,d can be numbers setxy c+d b+a //all numbers По сути,...
203 просмотров
schedule 13.01.2023

Сохранение скобок на маневровой станции
Я работаю над тем, что по сути является алгоритмом маневровой станции, но перемещая инфикс в префикс вместо RPN, я пытаюсь сохранить скобки, и у меня чертовски много времени. В настоящее время мой код String s = inFixList.get(i);...
1193 просмотров
schedule 27.08.2023

Алгоритм маневровой станции на С++
Мне нужна функция, которая принимает инфиксную строку (например, "3 + 4 * 9") и преобразует ее в постфиксную (например, "4 9 * 3 +"). У меня это работает, пока вы не добавите скобки в скобки. Я работаю над этим весь день и не могу понять, что я...
11362 просмотров

обработка унарного минуса для алгоритма маневровой станции
Есть ли лучший способ обработки унарного «-» при преобразовании инфиксного выражения в постфиксное? Очевидным будет префикс каждого унарного «-» с 0. Кто-нибудь знает лучшую реализацию? Спасибо!
5077 просмотров
schedule 04.05.2022

Понимание абсолютных значений при синтаксическом анализе выражений в двоичном дереве?
Я пишу парсер для выражений, которые включают токены ),(,|,*,+,-,/, переменные и константы. Пока что мой код работает с *,/,-,+,(,), но я не знаю, как работать с абсолютными значениями. Со скобками я начинаю с ( и заканчиваю на ), что очень...
194 просмотров
schedule 27.12.2022

Алгоритм маневровой станции с переменными
В настоящее время я работаю над модифицированной версией алгоритма маневровой станции, которая будет работать с переменными, но я не могу понять, как заставить ее работать. Например, я хотел бы, чтобы алгоритм переписал 2 * (2x + 5) - 5 в 4x + 5....
1206 просмотров
schedule 13.03.2024

Функции маневровой станции
Я использую алгоритм Shunting-Yard ( https://en.wikipedia.org/wiki/Shunting-yard_algorithm ) в программе на Java для создания калькулятора. Я почти закончил, но мне еще нужно реализовать функции. Я столкнулся с проблемой: я хочу, чтобы калькулятор...
799 просмотров

Расширение алгоритма маневровой станции для поддержки условного тернарного оператора
Как расширить алгоритм маневровой станции, изначально предназначенный для бинарных операторов, для поддержки условного тернарного оператора ("a ? b: c")? Я не видел ответа на этот вопрос здесь, и он у меня есть, поэтому я публикую его.
788 просмотров

Разобрать строку пропозициональной логики
У меня есть формула пропозициональной логики ((a или b) и !d) или e -> c Как можно разобрать эту строку, чтобы я мог составить дерево правды? Думаю, мне следует разбить строку на -> , and и or , но это испортит круглые скобки....
918 просмотров

Алгоритм маневровой станции с функциональной поддержкой [закрыт]
я нашел эту реализацию алгоритма Shunting-yard через Интернет ( Infix to Postfix с поддержкой функций ) infix_to_postfix(infix): postfix = [] infix.add(')') stack = [] stack.push('(') for each token in infix: if token is operand:...
668 просмотров

Оценка переменной из постфиксного выражения
Я пытаюсь построить решатель для уравнений с одной переменной. Я использую алгоритм Shunting-yard, дополненный предложениями denver и rici . Очевидно, что этот алгоритм отлично работает для анализа заданного математического выражения, определения...
244 просмотров

Добавление унарного оператора в алгоритм маневровой станции
Я создаю программу типа калькулятора, которая переводит ввод в постфиксную нотацию, а затем вычисляет выражение. Он работает для +,-,*,/ и ^, но я не могу заставить работать унарный -. В настоящее время я просто пытаюсь заставить унарный работать в...
200 просмотров
schedule 27.10.2023

преобразование инфикса в постфикс в C с вводом нескольких цифр
То, что я пытаюсь получить, - это калькулятор, который будет принимать инфиксную нотацию, игнорировать незначительные пробельные символы, такие как или «@», затем преобразовывать эту инфиксную нотацию в постфиксную нотацию и выполнять простые...
209 просмотров