Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

Нужно в одном интерпретаторе добавить функцию   Найти похожие ветки 

 
cyborg ©   (2006-05-23 09:40) [0]

На одном сайте набрёл на интерпретатор паскаля - http://alexboiko.chat.ru/prod.html или этот же сайт на народе http://alexboiko.narod.ru/resume.html

Уже встроил в свой самопальный веб сервер для обработки pas-скриптов, всё работает, только не хватает одной функции по проверке существования переменной как в РНР - IsSet( переменная );.
Перед выполнением скрипта в интерпретатор добавляю переменные из GET и POST. В интерпретаторе, если сделать, к примеру:
WriteLn( PostVar );
и такой переменной нет, то выполнение скрипта завершится с ошибкой.

Хотельсь бы, чтобы можно было обработать так:

if IsSet( PostVar ) then WriteLn( PostVar );

Как я понял, для ввода такой функции нужно:
в TToken добавить tIsSet
в ResWords добавить имя функции ISSET
в процедуру TPasCalc.Exec добавить case t of ... tIsSet : DoIsSet(CmdLine,s); ...
создать процедуру TPasCalc.DoIsSet(CmdLine,Line:string);

только что писать в этой процедуре я так и не понял :)

Если кто знаком в теории компиляторов/интерпретаторов помогите пожалуйста! Я сам плохо знаю эти вещи.


 
cyborg ©   (2006-05-23 09:47) [1]

Забыл название и версию упомянуть
PASCALC Версия 3.0 b


 
wicked ©   (2006-05-23 12:15) [2]

я, конечно не помощник, но идею могу подбросить.....
на самом деле вещи типа IsSet - не в паскалевском стиле....
в паскалевском стиле было бы логичней завести глобальный хеш-массив (на уровне интерпретатора, конечно), к которому уже обращаться встроенными (дописанными в интерпретатор) функциями... набор функций прост - получить значение (2 версии: с подстановкой дефолтного значения в случае отсутствия и с выбросом ошибки), проверить, есть ли такое значение, установить значение, удалить значение....


 
cyborg ©   (2006-05-23 15:07) [3]

Спасибо. В общем сделал как ты сказал, функцию объявил и ищу переменную по названию. Вопрос, можно сказать, закрыт :)



Страницы: 1 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
2-1149060826
Григорий
2006-05-31 11:33
2006.06.18
taskbar


15-1147467855
Yanis
2006-05-13 01:04
2006.06.18
Где скачать Delphi 2 и Delphi 1?


15-1148298698
Gryegh
2006-05-22 15:51
2006.06.18
GPRS перестало работать! Что делать?


15-1148759873
oleg_sys
2006-05-27 23:57
2006.06.18
IFO Specification


2-1148978248
Belorus
2006-05-30 12:37
2006.06.18
TListBox