 |
23.10.2007, 22:34
|
#1
|
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
BMX Preprocessor
Вот как то накодил препроцессор для бмакса...пока умеет тока #define...
Брать тут..читать текст вначале... сэмпл прилагетсо.
__________________
|
|
(Offline)
|
|
23.10.2007, 22:39
|
#2
|
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: BMX Preprocessor
Очень скромный препоцессор. Даже в дефайне еще не реализована возможность использования аргументов.
|
|
(Offline)
|
|
23.10.2007, 23:48
|
#3
|
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Re: BMX Preprocessor
да так и есть..первые шаги... собсно интересуют предложения по функционалу и отчёты по багам и несовместимостям.
__________________
|
|
(Offline)
|
|
24.10.2007, 00:27
|
#4
|
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: BMX Preprocessor
Главное предложение - реализовать функционал препроцессора С) Условная компиляция, макросы, фичи компилятора. В долгу с отчетами не останемся)
|
|
(Offline)
|
|
25.10.2007, 00:46
|
#5
|
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Re: BMX Preprocessor
Новая версия препроцессора:
BMX Preprocessor v0.2a
Установить в папку с БлитзМакс!
Препроцессор для блитзмакс, подменяет собой стандартный
препроцессор расположеный в BlitzMax\bin\bmk.exe
Стандартный bmk.exe переименовывается в bmk_original.exe
Программа предоставляется по принципу "КАК ЕСТЬ", бесплатно,
без ограничений и гарантий.
Права принадлежат Станиславу Жеронкину (admin@polynetix.com)
Возможности:
*Препроцессинг исходного кода БлитзМАХ (*.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. несовместим с режимом пошаговой отладки...в этом случае
будут подсвечиваться ни те строчки кода. Вообще совместимость
с режимом отладки невелика..ведутся работы в этом направлении.
Спасибо за внимание.
__________________
|
|
(Offline)
|
|
27.10.2007, 14:55
|
#6
|
|
|
Re: BMX Preprocessor
в общем вещь довольно рулезная ...
сходу накатал тестик :
#define test "bla"
DebugLog test
#define test2
#define test3 "ok"
#define test4 "no"
#ifdef test2
DebugLog test3
#Else
DebugLog test4
#EndIf
и заработало 
но есть но ... нифига не работает с инклудом относительных путей
у мну три файла - A1.bmx , test/A2.bmx , test/A3.bmx
в A1.bmx пишу Include "test/A2.bmx"
в A2.bmx пишу Include "A3.bmx"
и выходит что оно не инклудится ...
еще синтаксис не подсветчивается 
|
|
|
|
27.10.2007, 15:54
|
#7
|
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Re: BMX Preprocessor
новая версия:
! поправлена ошибка с множественными уровнями вложенности файлов исходника
+ новый кейворд: #undef name - удаляет определение лексемы, и она становится недоступной.
Внимание! Перед установкой новой версии обязательно удаляйте старую, использя деинсталятор из главного меню.
__________________
|
|
(Offline)
|
|
|
Эти 3 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
25.12.2010, 20:30
|
#8
|
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: BMX Preprocessor
Кто-нибудь знает - стандартными средствами макса такое можно делать нынче (всё ж таки прошло время), а то я не нашёл.
|
|
(Offline)
|
|
19.02.2011, 05:36
|
#9
|
|
ПроЭктировщик
Регистрация: 11.05.2007
Сообщений: 126
Написано 15 полезных сообщений (для 27 пользователей)
|
Ответ: BMX Preprocessor
Насколько я знаю, макс за эти три года совсем не изменился.
|
|
(Offline)
|
|
19.02.2011, 09:40
|
#10
|
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,374
Написано 2,478 полезных сообщений (для 6,866 пользователей)
|
Ответ: BMX Preprocessor
Сообщение от Earlind
Насколько я знаю, макс за эти три года совсем не изменился.
|
Изменился и ещё как.
Пруфы на оф. сайте.
|
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:29.
|