Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1147673699
Сергей И
2006-05-15 10:14
2006.06.18
Информация по литературе


15-1148345628
FireFox
2006-05-23 04:53
2006.06.18
Никто случайно не писал расширения к FireFox у ?


2-1149092879
цветог
2006-05-31 20:27
2006.06.18
рекурсия


15-1148586287
GEN++
2006-05-25 23:44
2006.06.18
Нужен бесплатный компонент


15-1148187592
mlm68
2006-05-21 08:59
2006.06.18
Как отправить SMS/MMS?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский