парсер

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)