JASP - Форум


Правила форума ·

  • Страница 1 из 1
  • 1
Форум » Warcraft III » Библиотека » JASP (Just Another Script Preprocessor)
JASP

Ty3uK

#1
JASP - небольшой препроцессор скрипта, который запускается перед парсерами cJass и vJass. Пока что возможностей мало, но и самой программе отроду всего 4 дня. Ниже о возможностях.

Возможности

Возможностей пока очень мало, а именно - две. Первая - упрощенное объявление локальных переменных внутри кода. Рассмотрим пример:

[jass]function Test takes nothing returns nothing
new timer t;
endfunction[/jass]
мы объявляем новый локальный таймер короткой коммандой. После парсинга это ожидаемо првератится в
[jass]function Test takes nothing returns nothing
local timer t = CreateTimer()
endfunction[/jass]
Внимание! знак ; (точка с запятой) обязателен в коне строки, иначе парсер не поймет код.
На данный момент возможно объявление следующих типов подобным образом:
[jass]new timer
new group
new force
new region
new trigger
new dialog
new leaderboard
new multiboard
new quest
new texttag
new camerasetup
new hashtable[/jass]
Так же возможно объявление нескольких переменных на одной строке.
[jass]new timer t; new group g; new hashtble h;[/jass]
превратится в
[jass]local timer t = CreateTimer()
local group g = CreateGroup()
local hashtable h = InitHashtable()[/jass]
Вторая возможность - использование блока совместимости кода. Например, вы пользуетесь cJass и при помощи библиотеки cj_typesEx объявили переменную
[jass]timer t = new timer;[/jass]
Вместе с JASP получится кракозябра. Дабы не переписывать весь код был введен блок "непарсинга":
[jass]$JASP_NOPARSE_BEGIN
timer t = new timer;
$JASP_NOPARSE_END$[/jass]
превратится без изменений в
[jass]timer t = new timer;[/jass]
Пока что у этого блока есть один недостаток: парсер считывает его даже при закомментировании, поэтому не стоит делать так
[jass]//$JASP_NOPARSE_BEGIN
timer t = new timer;
//$JASP_NOPARSE_END$[/jass]
ибо это засчитается как "непарс" блок.



Что планируется дальше

Дальше думаю запилить объявление единичной глобалки в коде функции и адаптацию блока for / endfor (vJass) под cJass парсер, т.к. они конфликтуют (за идею спасибо SirNikolas'y). Пример преобразования глобалок:
[jass]global region r[/jass]уйдет в главный блок глобалок
Сообщение отредактировал Ty3uK - Пн, 02.04.12, 15:05
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS]
GUI Must Die v1.1 | Arena Multiboard

H_A_PK

#6
Quote (Ty3uK)
это третий элемент

зачем ?


вот это всё равно новых возможностей варкрафту не даст
Ползут 2 пирожка.
Первый: Я тебя щас трахну.
Второй: Почему?
Первый: Потому что я с яйцами :D

Ty3uK

#7
Даст, когда я добавлю больше возможностей. И, бтв, в JASP уже есть кое-что от паскаля- директивы flush, free и repeat until

Добавлено (09.04.12, 08:04)
---------------------------------------------
А я пока и не говорю за новые возможности. Я стараюсь максимально упростить написание кода. Пока что

Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS]
GUI Must Die v1.1 | Arena Multiboard
Форум » Warcraft III » Библиотека » JASP (Just Another Script Preprocessor)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка…