Что это?
cJass - это еще одно расширение языка JASS, которое полностью совместимо с популярным vJass. Цель его создания - дать программистам еще больше возможностей по созданию простого и качественного кода. Основными направлениями являются:
- Макросредства и стандартная библиотека - избавляют от рутины, позволяя сконцентрироваться на основном коде.
- Упрощение синтаксиса - мы не хотим снова начинать спор, какой синтаксис лучше (блоки через begin & end или {}), и более того, мы не навязываем свою точку зрения - все конструкции cJass имеют JASS-style аналоги, тем не менее мы предоставляем выбор.
- Оптимизация карты - основная концепция cJass - это то, что все языковые конструкции не должны сказываться на качестве генерируемого кода. Также мы работаем над встроенным оптимизатором.
Как это использовать?
Просто скачайте дистрибутив (пароль для архива: cjass), распакуйте и запустите инсталлятор. У вас уже должен быть установлен Jass New Gen Pack.
Ознакомиться с возможностями можно, прочитав руководство пользователя cJass (off-line версия этого файла также имеется в директории программы).
Что-то не работает!
В настоящий момент мы активно дополняем язык всевозможными конструкциями, поэтому полноценная проверка синтаксиса пока отсутствует. Но мы всегда внимательно изучаем
bug-репорты, которые можно оставить в этой теме.
bug-репорты, которые можно оставить в этой теме.
У меня есть идея: а не плохо бы...
Мы всегда рады выслушать Ваши идеи и предложения по внесению каких либо новых возможностей в язык, расширению стандартной библиотеки и т.д. Иногда мы даже действительно делаем то, что Вы нам предлагаете ;) Наша секция обратной связи ждет Вас!
И напоследок немного истории.
А история программы начинается на ресурсе wc3c.net, когда Vexorian, выслушав предложение от ADOLF'a сделать инструкции инкремента и декремента создает ветку с обсуждением синтаксиса... и благополучно забывает об этом. Тогда ADOLF подумал: "А неплохо было бы сделать свой парсер и включить в него всяких вкусностей". Изначально программа весила меньше заветных 9000 байт, распространялась по сети ICQ/Jabber и ее использовали несколько человек.
Однажды один из ее пользователей - Van Damm (впоследствии стал соавтором) сказал "это очень удобно!" (это было сказано про то, что можно вызывать функции без ключевого слова call) - и тогда мы решили, что если это удобно, почему бы не выложить программу на публичное обозрение. Благодаря zibade у нас появился сайт, где сразу стал отписываться Dark Dragon, который помог выявить львиную долю багов и внес множество интересных предложений.
С тех пор прошло много времени, мы сделали много новых версий, вес программы вырос в 3 раза (сейчас 26 Кбайт). На данный момент у нас есть планы, касающиеся многих конструкций, оптимизатора, и всего прочего.
in a library:
it will tell me no end of scope/library...if i transfer from the textmacro it'll say no initializer, etc...it just doesn't work...
если кто-нибудь может дать мне хороший пример использования определить макрос в cjass, может быть, я мог бы переделать все textmacro мой cjass для составления ... или не быть лучший способ решить эту проблему? есть ли способ я могу сделать cjass только компиляции определенные триггеры, которые cjass триггеров? Таким образом это не мешает смотреть на vjass код и дал мне ошибки так что я могу практики кодирования cjass?
local unit mu=GetManipulatingUnit()
local integer inve=0
local item itm=null
if inve!=6 then
set itm=null
call SetItemCharges(itm,GetItemCharges(itm)+1)
else
call UnitAddItemById(mu,0x49303037)
endif
set mu=null
return false
endfunction
function stacka___Init takes nothing returns nothing
endfunction
function stackb___f takes nothing returns boolean
local unit mu=GetManipulatingUnit()
local integer inve=0
local item itm=null
if inve!=6 then
set itm=null
call SetItemCharges(itm,GetItemCharges(itm)+1)
else
call UnitAddItemById(mu,0x49303037)
endif
set mu=null
return false
endfunction
function stackb___Init takes nothing returns nothing
endfunction
but i'm still having problems with cjass.
i enabled adicparser and jasshelper, and i go all the way through cjass without errors, but get into vjass compiling and get an error about unexpected elseif where there is no elseif. it's just else.
then when i disable jasshelper and try to run the file after successful compilation, the map will not be tested. so i'm not sure what the problem is.
the line with the static if is gone in the error message.
i don't mind taking out static if should it be necessary, but is there a way to still use them? cjass seems to delete a line that has static if at the beginning, so now vjass cannot use that line.
if not what we're using then do commands that use something else
it actually takes less space and no need to get spelling of library or whatever correct.
Development version: 1.4.2.14 (19.05.2011) !
Elf_Stratigo, нет не пишет.