cJass - дополнение к языку JASS
Что это?
- Макросредства и стандартная библиотека - избавляют от рутины, позволяя сконцентрироваться на основном коде.
- Упрощение синтаксиса - мы не хотим снова начинать спор, какой синтаксис лучше (блоки через begin & end или {}), и более того, мы не навязываем свою точку зрения - все конструкции cJass имеют JASS-style аналоги, тем не менее мы предоставляем выбор.
- Оптимизация карты - основная концепция cJass - это то, что все языковые конструкции не должны сказываться на качестве генерируемого кода. Также мы работаем над встроенным оптимизатором.
Как это использовать?
Что-то не работает!
bug-репорты, которые можно оставить в этой теме.
Проекты :
Блог
Проекты :
Проекты :
если мне нравится пользоваться блоком define /enddefine то куда приписывать private?
Блог
Блог
странно как то. Поэтому я и выложил через ссыль.
Блог
Проекты :
Islands ORPG
SC2 Учебник
При открытии WE мне ошибку выдает.
как насчет unit var => !var
Проекты :
Проекты :
SC2 Учебник
Блог
Проекты :
cJass (Adic Jass Helper)
Проекты :
SC2 Учебник
Блог
Проекты :
cJass (Adic Jass Helper)
Блог
Проекты :
cJass (Adic Jass Helper)
Проекты :
Проекты :
Is the official representative of the site Administration
Блог
Проекты :
ТТМФ
Space Engineers
private:
public:
ну то есть чтобы не перед каждой функцией, переменной, константой, дефином писать их область видимости, а чтобы сразу разбить всё по сегментам)))
(вроде такого нет, правда?)
Проверил - игнорит доллар, а 0х работает.
Блог
Проекты :
Хотелось бы нормальную подсветку кастом функций
Is the official representative of the site Administration
Блог
Проекты :
ТТМФ
Space Engineers
Блог
Проекты :
cJass (Adic Jass Helper)
проблемы были толи в хелпере векса, толи в пЖасс
constant real x = 0.
define xx = 0.
08C9E0A0 fx+0000 00 00 05 05 00000eaf CREATE_LOCAL const {real (5)}
08C9E0A8 fx+0008 00 05 68 0e 0000024a MOV_VAR_REG x => #68 {real (5)}
08C9E0B0 fx+0010 00 00 68 11 00000eaf MOV_REG_VAR #68 => const
08C9E0B8 fx+0018 00 00 05 05 00000eb0 CREATE_LOCAL def {real (5)}
08C9E0C0 fx+0020 00 05 69 0c 00000000 MOV_VAL_REG 0 => #69 {real (5)}
08C9E0C8 fx+0028 00 00 69 11 00000eb0 MOV_REG_VAR #69 => def
08C9E0D0 fx+0030 00 00 00 27 00000000 RETURN
08C9E0D8 fx+0038 00 00 00 04 00000000 STUB_FUNC_END
mov eax, dword ptr [40000000h] ; address
mov eax, 10h ; value
In the second case, you just move the value to the register - it's much faster.
Проекты :
Вот простейшая функция:
Блог
Проекты :
cJass (Adic Jass Helper)
whilenot (i++ >= pow) {
res *= num
}
return res
endfunction
function test takes integer num, integer pow returns integer
local integer res = 1
local integer i = 0
loop
exitwhen (i >= pow)
set i = i + 1
set res = res * num
endloop
return res
endfunction[/code][/quote]
мне кажется, что следует поставить инкремент счетчика цикла в конец его действий, т.к. если мы по счетчику забиваем массив то пропадает нулевой элемент.
Блог
Проекты :
cJass (Adic Jass Helper)
Препроцессор cJass получил однозначную команду: посчитать условие и увеличить i.
i должно быть увеличено сразу после вычисления условия, а не там, где кому-то хочется.
Кстати, ADOLF, при невыполнении условия i тоже надо увеличивать! Это ошибка в справке?
{
private void=nothing
private int=integer
private bool=boolean
}
hashtable HashTable=InitHashtable()
setdef hash = HashTable
#endif
{
hash=hash
}
Блог
Проекты :
cJass (Adic Jass Helper)
Elf_Stratigo, у меня сохранило все правильно, поясните подробнее, что именно неработает
Кстати, а почему отказался от варианта i++ => (++i-1) ?
Блог
Проекты :
cJass (Adic Jass Helper)
:)
#if 0==0
hashtable HashTable=InitHashtable()
#endif
endglobals from System
trigger gg_trg_____________________________________001=null
endglobals[/code]
такто я для уверенности несколько раз позапускал AHupdate.exe - результат - окошко "cJass is up to date."
Проекты :
ок, переставлю через инсталятор...
Блог
Проекты :
cJass (Adic Jass Helper)
Блог
Проекты :
это так, предложение для следующих версий
Блог
Проекты :
cJass (Adic Jass Helper)