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