LINUX.ORG.RU

Приоритет выполнения операций

 


0

1

Пишу парсер выражений реляционной алгебры.

Вводная:

2 * 3 + 4 = 10
2 * (3 + 4) = 14

Теперь представим что вложенность может быть многократной. А мне нужно объяснить компу как с этим работать.

Полагаю, нужно выражения разбить на операции, для каждой указать приоритет выполнения. Но пока не до конца понимаю как.

Что бы мне использовать? (Кроме мозгов :))

Ответ на: комментарий от anonymous

Язык не так важен. Там просто ясно и доходчиво шаг за шагом собирается интерпретатор выдуманного языка с клозурами и почими плюшками. Без BNF, lex и yacc. Для пасинга используется вариация Pratt parser в котором все эти приоритеты выходят просто и не принуждённо сами собой. Да и просто приятная книга почитать. ;)

beastie ★★★★★ ()