Унарный и двоичный минус в дереве синтаксического анализа

Я создаю дерево разбора, которое будет содержать выражения, подобные

3 - 4 * 8

или

8 * -5

или

- (10 * 1)

Мне нужен способ различать унарный и двоичный минус. Моя грамматика работает сейчас так, что двоичный минус достигается первым, но я думаю изменить это и добавить переменную флага, которая содержит последнюю переменную.

Пример: если это 5 - 6

Флаг удерживает 5, и если он видит минус, а флаг является числом, то пропустить унарный и перейти к двоичному.

Однако я точно не знаю, как это реализовать на C++.

Будем признательны за любую помощь.

Спасибо

6
задан TemplateRex 11 May 2012 в 18:15
поделиться