Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.034 c
15-1148282004
balepa
2006-05-22 11:13
2006.06.18
Начинающим нефурыкает ? или тока у меня


10-1120548108
WG
2005-07-05 11:21
2006.06.18
Глюк при передаче данных в Excel, не опознает дату


3-1145866815
Alex Romanskiy
2006-04-24 12:20
2006.06.18
Заголовки в DbGrid


15-1148538041
begin...end
2006-05-25 10:20
2006.06.18
Сотовый...


2-1148890598
Barsky
2006-05-29 12:16
2006.06.18
Код ошибки при отправки на SMTP (Indy 9)




   Наверх