Двойное отрицание в обратной польской записи

Я пишу логический анализатор и оценщик обратной польской записи. Когда я хочу оценить двойное отрицание, например!!A, соответствующий RPN равен!A!, согласно алгоритму маневрового двора. Однако, когда я пытаюсь запустить алгоритм оценки из Википедии, он терпит неудачу, как при первом! Обнаружено, что нет значения для применения оператора, как ожидается.

Однако, если я напишу выражение как!(!A), оно будет преобразовано в A!! в RPN, что мне и нужно.

Это проблема с преобразованием в RPN или оценочная? Я всегда мог исправить это, применяя скобки к каждому отрицанию, но это не выглядит элегантным решением...

0 ответов

Другие вопросы по тегам