Форум: "Прочее";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
ВнизНужно в одном интерпретаторе добавить функцию Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c