![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нетривиальная задачка... [D6, Win95/98]
Fellomena © (2002-02-08 13:52:00)Привет всем !
Укажите направление plz для того что бы реализовать следующую штуку:
есть некая ф-ия типа:
function MyMathFunc(i, j, k: extended): extended;
begin
Result:= i*j*k;
end;
Есть на моей форме Edit1 в который я ввожу следующее:
i/j*k
Мне необходимо, что бы в моей ф-ии MyMathFunc значение Result соответственно стало не i*j*k, а
то, которое я ввожу в Edit1, т.е. в данном случае i/j*k
Это на инторпретатор смахивает, но с фиксированным числом входящих данных и фиксированным типом.
Ura (2002-02-08 16:09:00) [1]> Fellomena
Скинуть анализатор? (первая версия - с исходным кодом. Дохловат пока, но переменные однобуквенные разбирает...)
kig (2002-02-08 15:52:00) [2]А может тогда проще подключить интерпретатор JScript?
Чтобы геммороя поменьше?
Fellomena (2002-02-08 14:46:00) [3]Ясно, спасибо.
Геморно это очень... но рано или поздно мне это придётся делать, хорошо хоть не сейчас...
будем знать 8\
Виктор Щербаков (2002-02-08 14:37:00) [4]Берем книгу Б.Страуструпа "Язык программирования С++".
Смотрим пример "Калькулятор". Пишем нечто похожее на Delphi.
wicked (2002-02-08 14:20:00) [5]2 Fellomena
так функциятвоя и будет интерпретатором....
надо сначала разобрать введенное выражение во внутреннее представление, а потом, при вызове функции, интерпретировать его..
Fellomena (2002-02-08 14:12:00) [6]Это всё здорово конечно, но кто мне объяснит сам механизм перевода строкив код ?
Ведь моя программа в дальнейшем должна будет обращаться к моей ф-ии.
А как быть с адресом этой ф-ии ? Табличка адресов в проге формируется на этапе компановке, а при
изменении Result в ф-ии, в АП процесса наверняка произойдёт перераспределение адресов ?
wicked (2002-02-08 14:03:00) [7]всё равно интерпретатор... :)
хотя и не сложно.... для него нам потребуется:
1) сканнер (лексический анализатор)
2) собс-но парсер
в сканнерах я не силён, но есть прокрасный набор программ - tpLexYacc... Lex"ом из него можно сгенерировать недурственный сканнер....
а парсер - дело простое: 2 стека, алгоритм Дийкстры и час работы... :)
Виктор Щербаков (2002-02-08 14:01:00) [8]Реализуй синтаксический разбор методом рекурсивного спуска.