Форум » » исходники и новая версия URQ-интерпретатора. Стандарт парсера » Ответить

исходники и новая версия URQ-интерпретатора. Стандарт парсера

abcdef: Представляю тестовую версию программы URQ-интерпретатора с исходным кодом на языке Pascal. Оформление отображения текста пока не проводилось, основная задача - проектирование парсера для стандартизации и единообразия представления алгоритма разбор команд языка URQL. Практически все, если не все, программы URQL построены по принципу вычленения подстрок, когда считанная строка делится по позиции вхождения какого-либо слова, а эти половинки обрабатываются по отдельности... Здесь-же предлагаю алгоритм, работающий по принципиально-другому способу - разбору как у стандартных языков программирования. что реализовано в данной (0.0.1) версии: поддержка всех арифметических и логических операций, операторы: if ... then ... [else не поддерживается] p, pln, btn - строки текста с подстановками #выражение$ #%текстовая_переменная$ ##выражение$ instr - единственный способ создания текстовых переменных (длины хранимой строки пока ограничена 63 символами) с подстановками #выражение$ #%текстовая_переменная$ ##выражение$ goto, proc, common, inv, rnd, cls, input, invkill, perkill, save, pause, end. Характеристики: * работа с файлами неограниченной длины * при переходе по метке файл перечитывается заново * таблица переменных (переменные/инвентарь/метоки/строки) длиной 750 элементов. (строковые типы занимают по два элемента). * история возврата из подпрограмм на 1025 позиций. * анализатор ошибки отображает: необходимый оператор для данной конструкции, указание строки, позиции в строке где обнаружена. * запуск с командной строки (help - выводится при запуске без параметров) * пока интерпретатором обрабатываются файлы только в dos-кодировке (ASCII). Режимы работы: 0 - запуск квеста 1 - запуск из сохранения (не тестировался) 2 - сканирование квеста на наличие ошибок 3 - сканирование квеста на наличие ошибок и проверка наличия всех переходов по меткам (долго обрабатывает...) не знаю как здесь выложить файл... а так смотрите сюда: http://forum.ifiction.ru/viewtopic.php?pid=14929#p14929

Ответов - 117, стр: 1 2 3 4 5 6 All

abcdef: aurq006 добавлены функции работы со строками. примеры в архиве

Nex: Полгода разработки прошло, какие результаты? Aurq совместима хоть с чем-нибудь?

abcdef: если честно - доработал aurq за один вечер. (других дел хватает), в принципе того что хотел, я для себя реализовал, а именно: 1. гарантированная проверка квестов. 2. практически любой квест, не прошедший проверку исправляется для запуска не более чем за 15-20 мин., кроме квестов в html. 3. есть готовые исходники для перекомпиляции под windows или java. если появится желание добавлю html, но теги будут выводиться оператором pln вместо хаотичной перемешки с кодом. напр: вместо: <html><body>pln hi all... будет: pln <html><body> hi all... текущая версия неплоха для проверки своих работ, даже если планируете запускать на другом интерпретаторе. напр: несколько раз попадались подобные переменные "саша+маша" - разве не ясно что используя такую переменную в арифметическом выражении "саша" и "маша" будут считаться разными переменными, об этом вроде ни где не сказано


abcdef: недавно пробовал запустить хроники капитана блуда тайна левой ягодицы- наконец появилась ошибка "таблица переменных переполненна" реализовал delphi версию таблицу увеличил в 20 раз, убрал ограничение на строковые переменные в 64 символа --- после переезда на другую платформу появилась ошибка, протестирую, исправлю, выложу

qwerty: abcdef, радует, что ты стремишься к поддержке уже написанных игр и ещё: раз уж написанные игры требуют конвертации, что бы работать на твоём движке- хорошо бы сделать спец-утилиту для автоматической конвертации // а слово 'стандарт' в названии этой темы меня коробит. твоя урка- самая нестандартная из всех, которые я видел

abcdef: aurq007 windows-версия. подробности на: http://forum.ifiction.ru/viewtopic.php?pid=15303#p15303

abcdef: aurq008 для windows и dos. (добавлено проивольное положение меток в квестах). подробности там же...

abcdef: выложил рабочую версию с исходниками и подробной документацией. тестовый пример - квест 'хроники капитана Блуда...'

Chicago1920: abcdef Скажи честно, прежде чем я скачал. Это все работает?

Nex: Chicago1920 оно не работает сразу, зато само говорит тебе как под него переделать игру, чтоб она всё-таки заработала. Я не качал, сужу по описанию самого автора.

abcdef: а что имелось в виду "работает". с версии aurq006 вносилось много мелких корректировок, но из-за нехватки времени комплексное тестирование проводилось не всегда проводилось (несколько версий не обрабатывают некоторые квесты). В aurq0082 добавлен более корректный алгоритм остановки переполненного экрана, проведен тестинг имеющихся квестов, проверена работа добавленых возможностей, полная совместимость с dos-версией. --- квесты в архиве с программой: "Тетрис" - переполняется экран и ждет нажатия 'далее'. (удалить в первом pln две подстановки #/$) "Хроники капитана блуда" - практически везде генерация адресов перехода через подстановку #...$, совместно с отсутствием некоторого кол-ва оных локаций, приводит к ошибкам 'метка не найдена'. (добавить имя метки в пустую локацию, файл 'debug.txt' переименовать в 'save.txt' и запустить из сохранения командой 'aurq_win 1 w vk.qst')

abcdef: выложил aurq0089. подробная документация. в архиве более сотни проверенных и адаптированных квестов

abcdef: готовится версия aurq009. поэтому вопрос к квесто-писателям: сейчас существует тип данных 'счетчик метки' его можно только считывать. Каково ваше мнение, если их упраздню, т.е. будут увеличиваться числовые переменные с именем как у метки? Т.к. попадались квесты которые 'в наглую' пытались менять значения счетчиков. Кроме того подобный подход получит возможность без приставки 'count_'обращаться к меткам

Victor: abcdef пишет: Кроме того подобный подход получит возможность без приставки 'count_'обращаться к меткамПриставка была добавлена из-за того, что во многих квестах, особенно ранних, используются метки в виде чисел, типа :15 Со счетчиками без приставки получается, что 15+4 должно быть не 19, а "число заходов на 15"+4.

Хломидоманад: Прямо эволюция наоборот. Обратно в рипурку О_о

abcdef: выложил версию aurq009 - более стабильная и более медленная чем предыдущие. Стандартная работа с инвентарем, картинки (только '.jpg' и только отображение) в архиве несколько адаптированных квестов

Серый Волк: Да, такую энергию, да в нужное русло бы ;)

abcdef: urq-программка для AURQ0092, сочиняющая стихи: http://forum.ifiction.ru/viewtopic.php?pid=15416#15416

Nolite: abcdef , pause -1 в SURQ означает "ждать бесконечно долго". А как он работает в AURQ?

abcdef: 'pause' и любое отрицательное число с версии 009 означает сброс на экран и очистку буфера накопившегося текста. для бесконечной паузы есть 'end'



полная версия страницы