парсер
- From
- Jan Anikeychev (2:5030/1158.14)
- To
- Oleg Antoshkiv
- Date
- 2000-03-02T20:21Z
- Area
- RU.ALGORITHMS
Здравствуй, Oleg!
■ 01 Мар 00 11:49, Oleg Antoshkiv писал Andrey Belyakov:
AB>> Их написано и немало. Добавишь еще один - good. Считается,
AB>> что хороший программист за свою жизнь пишет хоть один
AB>> транслятор. :)
OA> С рекурсивным спуском я разобрался, а вот как реализовать в нем
OA> правоассоциируемость операций ? (например возведение в степень).
Ну смотри. Как ты вообще разбор проводишь?
функция значение выражения(\до приоритета\ приоритет \изначально 0\):число
отсюда
вырезать число
скопировать операцию
если (она разбирается справа и (ее приоритет=приоритет)) или
(ее приоритет>приоритет) выполнять
отсюда
скипнуть операцию
второе число=значение выражения(\до приоритета\ приоритет операции)
число=число операция второе число
скопировать операцию
досюда
значение выражения=число
досюда
Так, кажется...
Что же до 3^3^3... 3^(3^3) - имо тавтология... Так и надо разбирать.
Ведь ^ - на самом деле не просто операция, этот знак заменяет во-первых -
сдвиг текста вверх, во-вторых - скобки. То есть (3^3) поднимаются над первой
тройкой целиком.
А (3^3)^3 - ... Это имо все нормальные люди записывают как 3^(3*3). ;)
C уважением, Jan Anikeychev.
--- Ё Anika Station Ё
* Origin: Всё в жизни пурга. Кроме пчёл. (2:5030/1158.14)