Добавлен , опубликован

Что это?

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 Кбайт). На данный момент у нас есть планы, касающиеся многих конструкций, оптимизатора, и всего прочего.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
33
14 лет назад
0
txt2:> теперь есть 2 ветки обновлений =)
та что дев по идее не обновляется автоматически, но там всегда больше фич (и возможно багов^^)
ADOLF добавил:
1.4.1.6 - не отстаем от векса
void fx () {
    int i[]
}
0
13
14 лет назад
0
ADOLF, что значит сообщение Killing Vexorian при компиляции ?
Скрытая мечта хD?
0
13
14 лет назад
0
Это Векс тебя заставил :)
А как насчёт блоков из одного выражения без { и }?
0
18
14 лет назад
0
Это такое направление политики выбрали xD
Это такое объявление массива?
0
22
14 лет назад
0
та что дев по идее не обновляется автоматически
обновляется автоматически то, что выберешь в настройках =)
Van Damm добавил:
Это такое объявление массива?
да
0
22
14 лет назад
0
Хз баг ли это,но когда нажимаешь AutoUpdate Settings,то запускается апдейтер о.О,версия AdicHelper`a 1.4.1.5
0
22
14 лет назад
0
О_О жутко странно. Какая версия апдейтера?
0
13
14 лет назад
0
А что там в 1.4.1.6 ?
Ченджлог не правлен.
0
22
14 лет назад
0
Van_Damm, такая же,паком качал
0
22
14 лет назад
0
DragonSpirit, ну попробуй сам запустить AHupdate.exe /options
0
14
14 лет назад
0
Вопросс: кто нибудь так делает ?)
constant int Type## helm = 1
constant int Type## boots = 2
... (и тд)
есть функция
void f0x00(integer){
....
}
и дефайка
define STI(T) = f0x00(Type## T)
мне кажется удобно
0
13
14 лет назад
0
У Векса есть key
У Адика есть enum
В чём принципиальное отличие твоего предложения?
0
11
14 лет назад
0
Просто супер!!! я мануал проситал!! стока возможностей!
Вот как это???
integer i = 7, j, k
что произойдёт??
local integer i=7
set i=j
set i=k
или что буцдет? О_О
0
14
14 лет назад
0
LordSerga, неааага
local integer i = 7
local integer j
local integer k
0
18
14 лет назад
0
Прошу подробнее рассказать про "optional functions"
NCrashed добавил:
И встречное предложение - сделайте Variadic function =)
0
22
14 лет назад
0
Прошу подробнее рассказать про "optional functions"
Это к выпиливанию кода. А вы что подумали?
Если эти функции (которые не принимают параметров) нигде не юзаются, то они спокойно выпиливаются.
Этот комментарий удален
0
33
14 лет назад
0
Это к выпиливанию кода.
вам сойдет такое ?
грубо говоря, так надо метить функции, которые вы возможно не будете вызывать через call, и точно не будете вызывать через ExecuteFunc
стоить отметить, что все функции, которые принимают какие либо входные аргументы (т.е. все кроме takes nothing) считаются по умолчанию optional
опциональная функция выпиливается оптимизатором при сохранение, если она не используется
0
18
14 лет назад
0
Теперь все ясно, делайте ключевое слово "optional" пригодится
0
33
14 лет назад
0
оно уже сделанно в "дев" версии, правда в ней еще прибавленно несколько багов, которые я пофиксю через пару дней
0
30
14 лет назад
0
ADOLF, слава богу ты пришел, тебе вд сказал про баг с каунтером? Если нет, то он прибавляется только до 9.
Так же несколько полезных предложений по его улучшению:
  1. Получить текущее значение счетчика.
  2. Обнулить счетчик.
Это реально важно и нужно (мне во всяком случае =)).
0
22
14 лет назад
0
Hellfim, всё уже украдено до вас. Будет, но не так, как ты думаешь.
0
33
14 лет назад
0
коунтер пофиксил, скоро выльем
там я еще кое что фиксил, и надо еще что то отфиксить)
0
37
14 лет назад
0
да кстати сам по себе один счетчик не имеет смысла ведь у нас тут ооп зашкаливает, все либы независимы итп))
0
22
14 лет назад
0
да кстати сам по себе один счетчик не имеет смысла ведь у нас тут ооп зашкаливает, все либы независимы итп))
и что вы таки предлагаете?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.