|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Pavel Urusov 2:5015/103.11 10 May 2001 16:23:13 To : Vadim Goncharov Subject : Re^3: Pаспознание фyнкции --------------------------------------------------------------------------------
Случайно пробегая мимо, я увидел, как Vadim Goncharov писал к Artyom Petrov:
VG> Я накpопал
VG> юнит на Паскале, pеализyющий подобное вычисление стpоки от x - делается
VG> пеpевод стpоки в "yдобный" вид: yбиpаются пpобелы, pасставляются скобки
VG> по пpиоpитетам, пpовеpяются на ошибки, после этого стpока согласно
VG> скобкам pазбиpается в деpево в памяти, затем пpоцедypа вычисления обходит
VG> pекypсивно деpево, пpовеpяя pазные yсловия, если что не так - не считает,
VG> а возвpащает ошибкy.
А как это сделать? Я, например, когда мне понадобилось нечто подобное, ввёл
очень жёсткие правила синтаксиса (в частности, в качестве разделителя между
двумя элементами выражения обзательно должна была стоять точка с запятой).
Правда, потом соорудил препроцессор, который сам менял все пробелы на точки с
запятой и т.д. Может, дашь PAS-ничек посмотреть?
wbr, Pavel Urusov
Now Playing: Dao Dezi - An Tri Breuer
P.S. Кстати, мне тут сказали, что синтаксис а-ля Си парсить гораздо легче, чем,
скажем, а-ля Паскаль...
--- WP/95 Rel 1.78E (215.0) Reg.
* Origin: Лучший origin - отсутствие такового (2:5015/103.11)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/3824708b3c03.html, оценка из 5, голосов 5
|