Всем привет...
---
прижде чем выкладывать ide ? хотелосьбы обсудить несколько вопросов по будущему языку...
---
I. - структура каталогов самого Компилятора
1 - MPascal(условное название каталога Компилятора)
2 - Help(каталог со всякими справочными материалами по языку)
3 - Libs(каталог с готовыми библиотеками Class файлов + Txt файлы с такимже именем - описание либы(будет выводиться в инспекторе библиотек)
4 - Units (каталог с библиотеками на исходном языке(мпаскале) + Тхт описание
5 - Source (каталог содержащий всякие разные подкаталоги напр музыку, картинки и тд... то что будет чаще всего использоваться в Проекте)
5.1 - Image - каталог Png, Ico? Bmp? Jpg?
5.2 - Sound - каталог Wav Midi Mp3
5.3 - OtherSrc - ?
6 - Projects(каталог пользовательских проектов)
7 - MPIni??? - (настроечные / вспомогательные файлы компилятора (например дополнительные ЕХЕ - транслято
2 satan - посмотри в исходниках - может есть пример редактора на Tmemo со структурой?
ничего непонимаю
- текст в мессагах почемуто обрезается... по дцать раз редактировал - а он опять пропадает.... попробую ещё разик...
----
---
I. - структура каталогов самого Компилятора
1 - MPascal(условное название каталога Компилятора)
2 - Help(каталог со всякими справочными материалами по языку)
3 - Libs(каталог с готовыми библиотеками Class файлов + Txt файлы с такимже именем - описание либы(будет выводиться в инспекторе библиотек)
4 - Units (каталог с библиотеками на исходном языке(мпаскале) + Тхт описание
5 - Source (каталог содержащий всякие разные подкаталоги напр музыку, картинки и тд... то что будет чаще всего использоваться в Проекте)
5.1 - Image - каталог Png, Ico? Bmp? Jpg?
5.2 - Sound - каталог Wav Midi Mp3
5.3 - OtherSrc - ?
6 - Projects(каталог пользовательских проектов)
7 - MPIni??? - (настроечные / вспомогательные файлы компилятора (например дополнительные ЕХЕ - трансляторы, компиляторы, декомпиляторы, линковщики, архиваторы, редакторы рисунков...)
8 -
9 ??? что нибудь добавить?
=======
II. - каталог Проекта с пользовательской программой
в нём файл проекта - обычный ИНИ(с секциями и разделами - описывающие фалы проекта , какиенибудь настройки...
1 - ImgIn - файлы рисунков используемых в проекте (разных форматов)
2 - ImgOut - теже фалы рисунков - но обработынных утилитой pngout.exe - для формирования "сжатых" PNG файлов? кажется утилита бесплатная и будет поставлятся юзверям языка в комплекте ??
3 - SrcSound - разные музыкальные файлы проекта
4 - SrcMpas - редактируемы исходники на языке
5 - OutJava - оттранслированные Исходники в промежуточный язык компилятора Java???
6 - OutJAsm - оттранслированные Java в ЖаваАссемблер?
7 - Classes - полученные готовые класс файлы из Ассемблера???
8 - Bin - готовые для вставки в телефон Jar Jad
===
теперь по языку III. некоторые изменения синтаксиса Мпаскаля-ля-ля-ля...
1 - многострочные комментарии - мля... удобнее набирать с клавы, как мне кажется, символы /* и */???
2 - begin end - может заменим эту комбинацию на фигурные скобки? {}
3 - изменить описание переменных и функций... мля... для синаксического анализатора и коде жампера - былобы полегче использовать конструкцию типа: Описание : Индетефикатор(ы) чем NAme:type
секция Var
int: Name1, name2 = 10;
double: name3 = 3.14592;
string: function fName(string:param1,param2);
???
III. вопросы по языку...
5. секция UseLibs - использование готового class из каталога Libs компилятора, типа так: описание(имя либы и описание используемых в ней процедур/функций?
UseLibs Lib_advui: // Библиотека для управления огоньками и вибратором.
int: function set_lights (int: num, level);
/*-----------------------------------------------------------------------
Включить/выключить огоньки с номером num.
level - яркость данного огонька (0-100).
Пример:
a:=set_lights(0, 0) выключает экран.
Возвращает: 0 - ф-ция сработала нормально
-1 - неверный аргумент (нет огонька с номером num или
превышен интервал level)
*/
int: function flash_lights (int: dur);
/*-----------------------------------------------------------------------
Аналог flashBacklight...
dur - время мигания экрана в миллисекундах
Возвращает: 0 - ф-ция сработала нормально
-1 - неверный аргумент (время < 0)
*/
int: function startVibra (int: freq, dur );
/*-----------------------------------------------------------------------
Запустить вибратор на время dur в миллисекундах.
freq - частота вибрации (0-100)
Возвращает: 0 - ф-ция сработала нормально
-1 - ошибка аргумента (время < 0 или превышен интервал
частоты)
-2 - телефон не поддерживает вибрацию
*/
procedure stopVibra;
/*-----------------------------------------------------------------------
Останавливает вибратор, например если он был запущен с помощью
startVibra и время вибрации ещё не кончилось.
*/
EndLibs;
=======
хотя текст и большой - но в редакторе его можно будет "схлопнуть" в в одну строчку:
[+] UseLibs Lib_advui: // Библиотека для управления огоньками и вибратором. [...]
и этот текст будет автоматически? скопирован из файла описания ТХТ либы, в редактор, менеджером проекта...
а комментарии будут показаны в окне пооператорного Хелпа - если встретится в тексте процедура из библиотеки..???
III. о языке -
6. сделать структуру CASE такого типа:
DoCase
Case (условие):
операторы;
Case (условие):
операторы;
Case (условие):
операторы;
Other:
операторы;
EndCase;
???
---
7 - ещё про типы данных хотел поспрашивать... какие они будут в дополнение к "стандартным".. будут ли байтовые?
8. - из уже существующих библиотек для мидлет паскаля - отлаженных и проверенных - внести Их в новый компилятор....