парсер
- From
- Boris Rudakov (2:5054/9.4)
- To
- Oleg Antoshkiv
- Date
- 2000-03-01T11:33:09Z
- Area
- RU.ALGORITHMS
Hello Oleg!
29 Feb 00 17:28, Oleg Antoshkiv wrote to Boris Rudakov:
OA> ▀▄▀▄▀
OA> ··▀ Hello, Boris!
OA> 29 Feb 00 в 18:02, Boris Rudakov написал к Oleg Antoshkiv:
OA>>> программы, а просто описать последовательность действий. В
OA>>> книжках приводятся примеры на операции '+', '-', '*', '/', тут с
OA>>> приоритетами все просто, а как быть в случае, если уровней
OA>>> приоритетов не 2, а например 5 или даже 10 ?
BR>> Что, увеличить число рекурсивно-вызываемых функций до нужного
BR>> количества (по одной на каждый уровень приоритета) вантазии не
BR>> хватает ? Мнда уж :)
OA> Ну например в языке C++ около 40 операций, которые делятся на
OA> примерно 15 уровней приоритетов. Что для каждого уровня писать свою
OA> функцию ?
Именно так и никак иначе. Если посмотришь препроцессор из GCC (файл cccp.c), то именно это самое и увидишь.
OA> Я думал можно как-то универсально, для любого количества уровней.
Это и есть универсально. Наличие уровня определяется наличием функции (правила) для его трансляции.
Причем: обрати внимание, что всякие "табличные методы" трансляции абсолютно ничем не отличаются: если таблица сделана руками (извращение:) то добавление нового уровня должно ее серьезно перестроить, а если таблица создается транслятором трансляторов, то ты все-равно должен написать там новое синтаксическое правило (а то и не одно).
OA> Олег
Boris Rudakov, Гляжу в монитор я и думку гадаю -
BBR чаго ж я не монстр, чаго ж не летаю ?
--- Be happy: BBR is looking at you !
* Origin: АлкАголь малыми дозами безвреден в любых количествах (2:5054/9.4)