Добавлен , опубликован
cJass is small, but useful preprocessor for jass interpreted language, used in Warcraft 3 by Blizzard Ent. Its main purposes are to make the process of writing the script simple and comfortable and to increase its readability.
This is vJass (Jass Helper) - compatible!
cJass - небольшой, но полезный препроцессор для jass интерпретируемого языка, используемого в Warcraft 3 от Blizzard Ent. Его основная задача - сделать процесс написания скриптов простым и удобным и улучшить их читаемость.
Он совместим с vJass (Jass Helper)!
Code sample / пример кода:
include "cj_types.j"

bool bIsFlag = true

timer MyGlobalTimer = new timer

void SomeFunc (int i) {
  if (i>MAX_VAL) { i = MAX_VAL }

  bool b = !bIsFlag
  float a = 2.
  int c = -2
  a *= c + 8.

  do {
    BJDebugMsg(I2S(a))
  } whilenot (a < c++)
} 

Что это?

cJass - это еще одно расширение языка JASS, которое полностью совместимо с популярным vJass. Цель его создания - дать программистам еще больше возможностей по созданию простого и качественного кода. Основными направлениями являются:
  1. Макросредства и стандартная библиотека - избавляют от рутины, позволяя сконцентрироваться на основном коде.
  2. Упрощение синтаксиса - мы не хотим снова начинать спор, какой синтаксис лучше (блоки через begin & end или {}), и более того, мы не навязываем свою точку зрения - все конструкции cJass имеют JASS-style аналоги, тем не менее мы предоставляем выбор.
  3. Оптимизация карты - основная концепция cJass - это то, что все языковые конструкции не должны сказываться на качестве генерируемого кода. Также мы работаем над встроенным оптимизатором.

Как это использовать?

Просто скачайте архив(пароль: cjass), разархивируйте и запустите инсталлятор. У вас уже должен быть установлен Jass New Gen Pack.
Ознакомиться с возможностями можно, прочитав руководство пользователя cJass (off-line версия этого файла также имеется в директории программы).

Что-то не работает!

В настоящий момент мы активно дополняем язык всевозможными конструкциями, поэтому полноценная проверка синтаксиса пока отсутствует. Но мы всегда внимательно изучаем
bug-репорты, которые можно оставить в этой теме.

У меня есть идея: а не плохо бы...

Мы всегда рады выслушать Ваши идеи и предложения по внесению каких либо новых возможностей в язык, расширению стандартной библиотеки и т.д. Иногда мы даже действительно делаем то, что Вы нам предлагаете ;) Наша секция обратной связи ждет Вас!
И напоследок немного истории.
А история программы начинается на ресурсе wc3c.net, когда Vexorian, выслушав предложение от ADOLF'a сделать инструкции инкремента и декремента создает ветку с обсуждением синтаксиса... и благополучно забывает об этом. Тогда ADOLF подумал: "А неплохо было бы сделать свой парсер и включить в него всяких вкусностей". Изначально программа весила меньше заветных 9000 байт, распространялась по сети ICQ/Jabber и ее использовали несколько человек.
Однажды один из ее пользователей - Van Damm (впоследствии стал соавтором) сказал "это очень удобно!" (это было сказано про то, что можно вызывать функции без ключевого слова call) - и тогда мы решили, что если это удобно, почему бы не выложить программу на публичное обозрение. Благодаря zibade у нас появился сайт, где сразу стал отписываться Dark Dragon, который помог выявить львиную долю багов и внес множество интересных предложений.
С тех пор прошло много времени, мы сделали много новых версий, вес программы вырос в 3 раза (сейчас 26 Кбайт). На данный момент у нас есть планы, касающиеся многих конструкций, оптимизатора, и всего прочего.

ВНИМАНИЕ

>> В ДАННОМ П.О. ВИРУСОВ НЕТ <<
Антивирус определяет файл AHupdate.exe как вирус (trojan downloader) из-за принципа его работы.
На самом деле, апдейтер ничего вредоносного не делает.
Автор сего ПО приносит извинения за то, что так получилось
`
ОЖИДАНИЕ РЕКЛАМЫ...
38
Запилил это сюда для дополнительной известности.
25
Название лучше чтоли сократить до cJass (AdicHelper).
38
а гугл так не считает =(
о я придумал как
32
Добавьте отсюда последнюю бету, а также напишите, что там есть плюшки. Дайте ссылку на гуглокод.
38
ADOLF, тут чувак делает препроцессор всех полей РО, втч для доступа из жасса, вот он сделает, мы добавим еще новый сижасс и жассхелпер в эксп. сборку и выложим. Ну а отдельно покачто лень.
15
В настоящий момент мы активно дополняем язык всевозможными конструкциями
Мы всегда рады выслушать Ваши идеи и предложения по внесению каких либо новых возможностей в язык, расширению стандартной библиотеки и т.д. Иногда мы даже действительно делаем то, что Вы нам предлагаете ;) Наша секция обратной связи ждет Вас!
зачем лгать?)
проект как минимум заморожен, если учитывать то, что баги и минусы не устраняются
Статус: готов
готов из-за того, что нет времени на дальнейшую разработку
32
Статус: готов
Им можно уже давно благополучно пользоваться.
А вообще Скорпи молодец, все правильно делает. Пусть возмет поллитру сам знает чего с плочки ;)
14
Когда обновится уже руководство по парсеру?
15
ADOLF:
Статус: готов
Им можно уже давно благополучно пользоваться.
можно, только не новыми версиями адика(те, которые на гуглкоде). Только сборка от скорпа для пользования подходит, так как выглядит законченой.
А вообще Скорпи молодец, все правильно делает. Пусть возмет поллитру сам знает чего с плочки ;)
32
можно, только не новыми версиями адика(те, которые на гуглкоде)
Ими тоже можно, впрочем это может зависить от кривизны рук.
15
ADOLF:
Ими тоже можно, впрочем это может зависить от кривизны рук.
Давай без пафоса, адик нужно чинить. Ты как руководитель должен это понять, а не пустословить
Код, генерирующийся в процессе сохранения через новый адик на руки того, кто нажал на кнопку не смотрит
Твое игнорирование восьмого поста тоже о чем-то говорит, ты не хочешь или просто не имеешь возможности развивать и как-то улучшать проект, у тебя можно только взять консультацию по использованию
во всяком случае ты проделал немалую работу, за что тебе спасибо, но какой смысл врать про развитие и про полноценную работу программы когда и так все видно?
Если бы программа была платной, то можно было бы понять, а так это обман себя какой-то
32
Код, генерирующийся в процессе сохранения через новый адик на руки того, кто нажал на кнопку не смотрит
Можно пример, что именно не устраивает?
ты не хочешь или просто не имеешь возможности развивать и как-то улучшать проект, у тебя можно только взять консультацию по использованию
Так и есть.
38
хз че там кривого, вроде всё щщикарно работало, и так о нем можно было тока мечтать, особенно избыточные вещи типа объявления локалок в любом месте... теперь только заводит новичков в заблуждение)
29
хз у меня не бажит практически последний.
ну я из вжасса только структы юзаю, либы и скоупы.
10
Уменя чето не качает ,выдает ошибку со странички(
9
Адодьф, Вы можете обновить и дополнить мануал?
32
Ty3uK, я полагаю, нам удобнее пообщаться в асе или скайпе.
38
ADOLF, меня больше интересует какого хрена в апдейтах есть бинарник и нету wehack, мне пришлось неслабо извратнуться, чтобы заапдейтить свой хелпер от очень старой до последней версии.
38
Почему не сделаешь свой луа файл ?
24
От такого:
#define debug(s) = 
{
    #if Debug && LocalDebug
        DebugLog_LogAdd(`FUNCNAME`+s);
        #if ShowDebugLogInGame
            BJDebugMsg(`FUNCNAME`+DebugLog_GetCurrentTime() +": " + s);
        #endif 
    #endif
}
Падает. А именно препроцу не нравится FUNCNAME
А так же очень часто падает без причины, и не компилится код, до тез пор пока не сделаешь в рандомном месте отступы, причем не редко 1-2 отступов не хватает, и трубуется пачка:)
32
Начнем с того, что debug - зарезервированная инструкция языка, и она даже подсвечивается в редакторе.
24
ADOLF, не играет никакой роли. Сжасс работает до вжасса, и после сжасса не остается ни одного дебуга.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.