синтаксический анализатор мат.формул
- From
- Boris Rudakov (2:5054/9.4)
- To
- Andrey Belyakov
- Date
- 2000-02-28T10:53:13Z
- Area
- RU.ALGORITHMS
Hello Andrey!
27 Feb 00 22:59, Andrey Belyakov wrote to All:
AB> From: "Andrey Belyakov" <andrejb@care.lv>
AB> Hi, Boris Rudakov !
>> Такие вещи должны решаться элементарнейшим
>> нисходящим разбором, если не являются частью
>> какого-то более крупного языка, тогда разбор
>> выражений для общности выполняется по единому
>> алгоритму транслятора.
AB> Даже если эти вещи не являются частью языка, их все равно
AB> проще сделать по единой методике.
Я не это имел в виду. Я имел в виду что когда разбор выражений - отдельная самостоятельная задача, то нужно не долго думая писать классический нисходящий разбор. А когда делается транслятор большого языка, то его парсер как правило пишится на языке транслятора трансляторов (например парсер С++ вручную просто сдохнешь писать) - языке Яка там, Бизона, Лекса, LX - много их, не суть, и тогда разбор выражений является мелкой подзадачкой, одним абзацем описания грамматики, и не требует специальных отдельных усилий.
>> Вот и все. Просто и со вкусом.
AB> Смотрел минут пять пока нашел все операции, разбор
AB> которых поддерживается.
AB> Просто, но не со вкусом - цветочков не хватает. :)
А чего там тебе не хватило ? Ж8-[= . =]
Список функций - за полсотни (лень точно смотреть), практически вся тригонометрия, векторные, статистические функции - куча разной мути. Нет только матричных операций по причине ленности. Если ты про операторы - согласен, всякую побитовую и логическую беду я тоже не стал делать, т.к. калькулятор создавался только для вещественных вычислений (в силу предметной области).
Да и если уж на то пошло, согласись: такой текст можно практически не напрягаясь отимпрувить и отэкспандить как тебе надо новыми операциями. Было бы желание :)
AB> Андрей.
Борис Рудаков, - Нянька, утку давай !
BBR
--- Be happy: BBR is looking at you !
* Origin: АлкАголь малыми дозами безвреден в любых количествах (2:5054/9.4)