forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на BlitzMax (http://forum.boolean.name/forumdisplay.php?f=106)
-   -   BMX Preprocessor (http://forum.boolean.name/showthread.php?t=4843)

SBJoker 23.10.2007 22:34

BMX Preprocessor
 
Вложений: 2
Вот как то накодил препроцессор для бмакса...пока умеет тока #define...

Брать тут..читать текст вначале... сэмпл прилагетсо.

alcoSHoLiK 23.10.2007 22:39

Re: BMX Preprocessor
 
Очень скромный препоцессор. Даже в дефайне еще не реализована возможность использования аргументов.

SBJoker 23.10.2007 23:48

Re: BMX Preprocessor
 
да так и есть..первые шаги... собсно интересуют предложения по функционалу и отчёты по багам и несовместимостям.

alcoSHoLiK 24.10.2007 00:27

Re: BMX Preprocessor
 
Главное предложение - реализовать функционал препроцессора С) Условная компиляция, макросы, фичи компилятора. В долгу с отчетами не останемся)

SBJoker 25.10.2007 00:46

Re: BMX Preprocessor
 
Вложений: 2
Новая версия препроцессора:

BMX Preprocessor v0.2a

Установить в папку с БлитзМакс!

Препроцессор для блитзмакс, подменяет собой стандартный

препроцессор расположеный в BlitzMax\bin\bmk.exe
Стандартный bmk.exe переименовывается в bmk_original.exe

Программа предоставляется по принципу "КАК ЕСТЬ", бесплатно,

без ограничений и гарантий.
Права принадлежат Станиславу Жеронкину ([email protected])

Возможности:

*Препроцессинг исходного кода БлитзМАХ (*.bmx)

Ключевые слова:

- #define name [value]
Объявляет новую лексему с именем name и значением value для

внутренего пользования препроцессором, ключевое слово, имя и

значение отделяются пробелами.
Значение является необязательным параметром.
После объявления лексемы её имя в коде программы заменяется

препроцессором на её значение.

- #ifdef name
Проверяет была ли определена лексема с именем name, в случае

истинности условия далее расположеный код компилируется, в

противном случае некомпилируется.

- #ifndef name
Проверяет была ли определена лексема с именем name, в случае

ложности условия далее расположеный код компилируется, в

противном случае некомпилируется.

- #else
Позволяет компилировать или некомпилировать код в случаях

нвыполнения условий #ifdef и #ifndef

- #endif
Отмечает окончание блока условий.

- #elif name
Проверяет объявлена ли другая лексема если предыдущая

проверка спомощью #ifdef или #ifndef (собственно это elseif).

Встроенные макросы:

__DATE__ - вставляет вместо себя в код дату компиляции
__TIME__ - вставляет вместо себя в код время компиляции
__FILE__ - вставляет вместо себя в код имя исходного файла
__LINE__ - вставляет вместо себя в код номер строчки в

исходном файле


Пока всё.. список возможностей будет пополняться...

Ограничения:

1. несовместим с режимом пошаговой отладки...в этом случае

будут подсвечиваться ни те строчки кода. Вообще совместимость

с режимом отладки невелика..ведутся работы в этом направлении.

Спасибо за внимание.

jimon 27.10.2007 14:55

Re: BMX Preprocessor
 
в общем вещь довольно рулезная ...
сходу накатал тестик :

Код:


#define test "bla"
DebugLog test

#define test2

#define test3 "ok"
#define test4 "no"


#ifdef test2
DebugLog test3
#Else
DebugLog test4

#EndIf

и заработало :super: :-)
но есть но ... нифига не работает с инклудом относительных путей
у мну три файла - A1.bmx , test/A2.bmx , test/A3.bmx
в A1.bmx пишу Include "test/A2.bmx"
в A2.bmx пишу Include "A3.bmx"
и выходит что оно не инклудится ...

еще синтаксис не подсветчивается :(

SBJoker 27.10.2007 15:54

Re: BMX Preprocessor
 
Вложений: 2
новая версия:
! поправлена ошибка с множественными уровнями вложенности файлов исходника
+ новый кейворд: #undef name - удаляет определение лексемы, и она становится недоступной.

Внимание! Перед установкой новой версии обязательно удаляйте старую, использя деинсталятор из главного меню.

Жека 25.12.2010 20:30

Ответ: BMX Preprocessor
 
Кто-нибудь знает - стандартными средствами макса такое можно делать нынче (всё ж таки прошло время), а то я не нашёл.

Earlind 19.02.2011 05:36

Ответ: BMX Preprocessor
 
Насколько я знаю, макс за эти три года совсем не изменился.

Randomize 19.02.2011 09:40

Ответ: BMX Preprocessor
 
Цитата:

Сообщение от Earlind (Сообщение 179454)
Насколько я знаю, макс за эти три года совсем не изменился.

Изменился и ещё как.
Пруфы на оф. сайте.


Часовой пояс GMT +4, время: 04:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot