Bộ phân tích cú pháp thực sự phải phân biệt dấu trừ hai ngôi (phép trừ) với dấu trừ một ngôi (đổi dấu). Quy tắc nhận biết: dấu - là một ngôi nếu nó là token đầu tiên của biểu thức, hoặc token liền trước nó là một toán tử (+,−,×,÷,^, kể cả trừ một ngôi khác) hoặc dấu (; ngược lại (đứng sau toán hạng hoặc dấu )) nó là trừ hai ngôi.
Cho biểu thức trung tố gồm toán hạng là số nguyên không âm hoặc biến (một chữ cái thường), các toán tử +,−,×,÷,^ (+ - * / ^, ^ kết hợp phải, ưu tiên cao nhất) và dấu ngoặc. Hãy chuyển sang hậu tố, trong đó dấu trừ một ngôi được ký hiệu là @ (một toán tử một ngôi, độ ưu tiên cao hơn cả ^, kết hợp phải).
Ví dụ: - 3 + 4 (dấu - đầu tiên là một ngôi) cho hậu tố 3 @ 4 +; 3 - - 4 (dấu - đầu là hai ngôi, dấu - sau là một ngôi) cho hậu tố 3 4 @ -.
Một dòng duy nhất chứa biểu thức trung tố, các token cách nhau bởi đúng một khoảng trắng.
In ra một dòng là biểu thức hậu tố, các token cách nhau bởi đúng một khoảng trắng; dấu trừ một ngôi được in là @.
Ví dụ:
Đầu vào:
- 3 + 4
Đầu ra:
3 @ 4 +
Đầu vào:
3 - - 4
Đầu ra:
3 4 @ -
Đang tải editor...