Вы можете построить конечный автомат.Он может определить токены, где что-то не так.
Когда вы начнете читать выражение, ожидайте префиксный оператор или операнд.Если вы читаете префиксный оператор, ожидайте префиксный оператор, операнд или открывающую скобку.
Если вы читаете операнд, ожидайте постфиксный или инфиксный оператор или закрывающую скобку.
Если вы читаете оператор ожидания постфикса и оператор инфикса или закрывающую скобку.
Если вы читаете оператор инфикса, ожидайте оператор префикса, операнд или открывающую скобку.
Есливы читаете открывающую скобку, ожидаете префиксный оператор, операнд или открывающую скобку.
если вы читаете закрывающую скобку, ожидайте постфиксный или инфиксный оператор или закрывающую скобку.
Вы можете легко переключить эти ifs на переключатель.:)