Re: парсер

From
Andrey Belyakov ()
To
All
Date
2000-03-01T15:32:20Z
Area
RU.ALGORITHMS
From: "Andrey Belyakov" <andrejb@care.lv>

Hi, Oleg Antoshkiv !

>  >> Ну например в языке C++ около 40 операций, которые
>  >> делятся на примерно 15 уровней приоритетов.
>  AB> Что-то я насчитал 67...
> Что-то много. Я насчитал максимум 56 (из книжки
> Б.Страуструпа 2-я. ред.)
Перечитай. Операции A&B и &C - разные. Скобки повышения
приоритета и вызова функции - тоже.

>  >> Что для каждого уровня писать свою функцию ?
>  AB> В рекурсивном спуске - да, почти для каждго и потом
>  AB> задаваться вопросом - А где я собственно нахожусь
>  AB> (в смысле - какой уровень вложенности) и как отсюда
>  AB> выбраться (на случай ошибки)?
> Для этого вроде исключения придумали.
???
Чем они смогут здесь помочь?

>  >> Я думал можно как-то универсально, для любого количества
>  >> уровней. (это не значит что  собрался писать компилятор С++,
>  >> это только пример).
>  AB> Их написано и немало. Добавишь еще один - good. Считается,
>  AB> что хороший программист за свою жизнь пишет хоть один
>  AB> транслятор. :)
> С рекурсивным спуском я разобрался, а вот как реализовать в нем
> правоассоциируемость операций ? (например возведение в степень).
Ты же пишешь - разобрался. :) Просто другой порядок вызовов.

Андрей.


--- ifmail v.2.15dev4
 * Origin: Demos online service (2:5020/400)