12 ГОД |
adic3x
cJass - дополнение к языку JASSPublished |
Что это?
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 Кбайт). На данный момент у нас есть планы, касающиеся многих конструкций, оптимизатора, и всего прочего.
Views: 94 157
Like +18
- 1
Doc
Doc
Блог
Проекты:
Dota 2
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Doc
Doc
Блог
Проекты:
Dota 2
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Doc
Doc
Блог
Проекты:
Dota 2
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Elf_Stratigo
Elf_Stratigo
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
{
int integer
bool boolean
void nothing
float real
while (cond) whilenot not(cond), <- тут ошибка
break=exitwhen true
Doc
Doc
Блог
Проекты:
Dota 2
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Msey
Msey
Блог
Проекты:
Unity
Программирование
Unity - скрытая папка
Tensor Games
Алгоритмы
Freelance
Как решить проблему? как модуль заменить в таком случае?
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
Clamp
Clamp
Блог
Проекты:
Plague
WarCraft 3 Reforged
cJass (Adic Jass Helper)
XGM Staff
StarCraft 2
Во славу Лоа
Былые долги
Way of Others
TcX
Мастерская переводов | Кампании WC3 на русском
Elven Union
zombie rush new
Программирование
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Hellfim
Hellfim
Проекты:
S.T.A.L.K.E.R.
SC2 Учебник
Android
Mashmeer March TD
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Типа
var g = new Group();
ну ты понял=)
Doc
Doc
Блог
Проекты:
Dota 2
}
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
ScorpioT1000
ScorpioT1000
Блог
Проекты:
ТТМФ
Музыка
World of WarCraft
Cyberpunk 2077
alpha
alpha
Проекты:
я отписывал о них ранее
ScorpioT1000
ScorpioT1000
Блог
Проекты:
ТТМФ
Музыка
World of WarCraft
Cyberpunk 2077
Klop
Klop
Блог
или прочие символы типа @
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
Hanabishi
Hanabishi
Блог
Проекты:
XGM Staff
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
Hanabishi
Hanabishi
Блог
Проекты:
XGM Staff
ScorpioT1000
ScorpioT1000
Блог
Проекты:
ТТМФ
Музыка
World of WarCraft
Cyberpunk 2077
Doc
Doc
Блог
Проекты:
Dota 2
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
Darklight
Darklight
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
run it before processing code (when I started writing adiсhelper I could not do it with external tools, and I had to edit Lua)
when writing a preprocessor you no need to open the map, extract script, repack it, look it your tags, etc.
You can pass more than one command line in external
You can write a plugin in any language, which compiles to the *.dll (C, Delphi, basic, asm, etc.)
writing a specific plugin may be necessary in rare cases, so much not to think about)
create your own zinc with syntax sugar
write own specific preprocessors
create database of terrain (read war3map.w3e) or placed doodads
...
It run before cJass parser, so you may use cJass syntax, or add (temporary) ! lua ... ! endlua - then cJass parser ingone your code.
cjplugresult - is windows exit code analog:
0x00000001 ... 0xfffffffe - error, plug display information about error to user
0xffffffff - error, cJass display [21] Critical error: unknown error in plugin
There is demo plugin with source, which add string s="Hello from plugin!" to code. Create plugins directory, place it there and try parse code from this post...
Не факт, что это не отвалилось в каком либо билде ;)Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Doc
Doc
Блог
Проекты:
Dota 2
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Doc
Doc
Блог
Проекты:
Dota 2
adic3x
adic3x
Блог
Проекты:
cJass (Adic Jass Helper)
Литература
Doc
Doc
Блог
Проекты:
Dota 2
Faion
Faion
Блог
Проекты:
S.T.A.L.K.E.R. ORPG
Ошибки нету, я ступил.