Quote:
К сожалению, Ваши программы не желают работать без установленного Делфи. Вспомним, хотя бы QDialog.
Я его убрал (QDialog)и думаю что на этом и все решилось!
Quote:
Насчет синтаксиса, я советовал следить, чтобы Делфийские примочки не использовались. ... и определитесь что Вы хотите поддерживать. Всю махину Делфи (тогде думайте о синтаксисе с классами, ибо среда будет давать ошибки) или Вам достаточно простого Паскаля (тогда, от Делфи, как редактора, нужно отказаться).
Да никто не собирается использовать ВСЕ дельфийские примочки. Это и не нужно и невозможно! Особенно с классами! Памяти львова не хватит на такое!
ВАЖНО: Чтобы поведение программы написанной в среде и запущенной в среде (с использованием модуля) соответствововало тому поведению, если ее потом скомпилировать утилитой-компилятором в SAV!
Ну вот пример (из примеров к модулю DprPasToLV.dll ) ...
Code:
program Example01;
// Пример адаптирован из уроков для PC Lviv Studio
// http://www.old-games.ru/forum/showthread.php?t=50209
// Примечание.Описание всех процедур молуля DprPasToLV.dll
// находится в файле DLLFP.pas
uses
DLLFP in 'DLLFP.pas'; // Функции и процедуры Модуля DprPasToLV.dll
BEGIN
MviA(0);
OUT_($0C2);
MviA(0);
Sta($0BE38);
CALLinMemLV($0EBBC); //Запустить подпрограмму в Памяти ПК-01 (в памяти Эмулятора)
MviA(255);
Sta($5010);
WaitClose; // Ожидание закрытия формы (для приминения в конце программы)
END.
Вот этот пример работает в среде дельфи (при наличии DprPasToLV.dll, и DLLFP.pas).
И этот же пример должен также могти компилироватся компилятором, и скомпилированным он ведь должен выполняться также!
Имменно для этого и подобных примеров написать компилятор не сложно! И я это понимаю! Поэтому я это "подвинул"!
Нужно по мере возможности максимально расширить синтаксис, причем соблюдая полное соответствие поведения проги запущенной в среде, и той что скомпилированна компилатором в формат SAV. Вот что очень важно!
Далее я мыслил так.
Чтобы написанный мной язык программирования, считался языком програмирования и на нем можно было бы хоть что-то хоть как-то написать. Нужно расширить синтаксис, причем максимально приближенный и соответствующий среде, НО РЕАЛЬНО ВОЗМОЖНЫЙ РЕАЛИЗАЦИИ МНОЙ.
И вот смотрел так
Uses ? - можно и даже нужно обойтись без него, так как памяти львова как кот наплакал пусть все содержится в одном файле! Во как !
Var – Ну хотя бы чтобы понимало
Byte, Word, Char.... ой, ну очень хочется
String, точнее
ShortString (хотя бы константой нужно) фиксированной длинны, так как гибкий врядле у меня получится его реализовать, хотя бы для реализации банального вывода текстовой константы на экран ПК-01.
If Begin end else begin end – Нужны! А как же без них то!
While, For, Repeat – ну... вроде тоже несложно реализуемо — это все метками и переходами...
Далее
Procedure, Function – Это тоже нужно!
A:=A+B и т.д — тоже реализовать несложно, хотябы с одним действием
А теперь вот внимание «соль» вопроса и моей проблемы!
Каждое выделенное жирным само по себе реализовать вроде бы не сложно и для меня вполне выполнимо, а вот в целом...
Допустим возьмем Var, посмотрите на его разновидности и представьте мысленно алгоритм их реализации
Var a:Byte;
Var a:Byte;b:word;a1:Byte;
Var a:Byte=0;b:word=1;
Var {кометарий} a,d,nn,rffr56{кометарий}:Byte; b,fqdf{кометарий},mm34r4:word;//коментарий
Также если еще добавить к этому «спагетти» то, что почти в любом месте (любой из этих строк) может находится ЛЮБОЕ количество пробелов, вводов, табов, коментариев...
то становится жутко плохо:-) как же точно компилировать такие конструкции, да еще и определять где допущена реальная ошибка пользователем.
Вот в чем вопрос!
Quote:
liberation
Вы, Олег, слишком разошлись. Никакого пафоса и понтования я не вижу. Человек дейстивтельно пробует сделать то, что ему хотелось бы.
Zelya,
СПАСОБО ЗА ПОНИМАНИЕ! Подчеркну слова:
”пробует сделать то, что ему хотелось бы”
Quote:
Но, не все сразу. Где-то что-то подчитается, где-то что-то упростится. Я искренне верю, что какой-то результат да и получится.
Подчеркну слова:
”не все сразу”, ”какой-то результат да и получится”
А на идеальность я и не претендую!
Меня в принципе УЖЕ устраивало (и устраивает) модуль последний который я выложил (в том виде), и я бы мог вполне с ним экспериментировать и «играться» до по жизни
Поэтому, если даже и сорвется этот мой проект с компилятором, - я его могу вообще «заморозить», забыть и т.д.
Просто, я захотел «пойти дальше», «Заплыть глубже»!
ЗЫ.
Как бы там ни было... и кто бы чего не думал... не считал «там»....
Считаю, что оскорблений и обсы*ний в свой адрес, я не заслуживаю!
Никому ничего плохого я не сделал и не делаю !