Сейчас 17:32:39 Суббота, 27 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » JASP (Just Another Script Preprocessor)
JASP
Ty3uKДата: Понедельник, 02 Апреля 2012, 12:26:42 | Сообщение # 1
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
- небольшой препроцессор для языка Jass2, который запускается перед парсером vJass (JassHelper). Полную информацию о возможностях вы можете прочитать в мануале, все ссылки внизу.

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Ty3uKДата: Воскресенье, 15 Апреля 2012, 18:25:53 | Сообщение # 101
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Итак, господа, я полностью разобрался с типизацией. Теперь она работает, даже если начальное значение не было объявленно (при условии, что потом вы дадите ей значение). То есть можно объявить и так:
Quote
var b
//actions
set b = true
парсер подставит переменной тип, в зависимости от значения :)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DragoNДата: Воскресенье, 15 Апреля 2012, 19:01:23 | Сообщение # 102
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Quote (Hexing)

ох все вы такие не хардкорные, это же скукота смертная юзать движок

пиши свой движок
@
будь плохим парнем
opengl/directx?


El Psy Congroo
 

Ty3uKДата: Воскресенье, 15 Апреля 2012, 19:04:23 | Сообщение # 103
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
3dfx trollface

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Понедельник, 16 Апреля 2012, 11:21:34 | Сообщение # 104
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (DragoN)
пиши свой движок
@
будь плохим парнем
opengl/directx?

шутишь? по канвасу пиксели отрисовывать через TImage.canvas, какой directx лол, это для лохов
и я уже написал его(openGL юзал), и уже удалил, потому что я ленивая задница и ничего не довожу до конца crazy


 

Ty3uKДата: Понедельник, 16 Апреля 2012, 13:55:44 | Сообщение # 105
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Парни, давайте оффнем несабжевые разговоры? :)
Подошел очередной билд мануала и скоро я обновлю сам парсер. Пока предлагаю ознакомиться с предпоследним пунктом в оглавлении под названием "Нетипизированные переменные". Всем спасибо за внимание, жду отзывов и комментариев :3


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Понедельник, 16 Апреля 2012, 14:14:47 | Сообщение # 106
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
В мануале не написано про множественное объявление в var. Ты забыл написать или забыл реализовать?
Как он реагирует на оба вида хекса и null?
Кстати, может, "var" подсвечивать как тип?

Добавлено (16 Апрель 2012, 14:14:47)
---------------------------------------------
Насчет последующей инициализации - вообще супер.
А разве нельзя объявлять переменные в середине функции?

Code
void abc() {
    loop {
        var u = FirstOfGroup(G)
        exitwhen u == null
        GroupRemoveUnit(u)
        //...
    }
}


 

Ty3uKДата: Понедельник, 16 Апреля 2012, 14:29:08 | Сообщение # 107
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, множественное объявление пока запилил только для необъявленных типов, нул и хексы никак не обрабатывает - хексы исправлю, а вот с нуллом не уверен - какой тип давать? объявление в середине функции не канает, но думаю это поправить

Добавлено (16 Апрель 2012, 14:25:46)
---------------------------------------------
Хексы запилил

Добавлено (16 Апрель 2012, 14:28:56)
---------------------------------------------
Запилил множественное объявление со значениями (не работает, если значение хотя бы одной переменной - функция, в виду некоторой сложности обработки запятых)

Добавлено (16 Апрель 2012, 14:29:08)
---------------------------------------------
Ушел мыть пол trollface


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Понедельник, 16 Апреля 2012, 14:29:18 | Сообщение # 108
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
какой тип давать?
handle. Либо можно string или code, но я бы предпочел handle.
Вот еще вспомнил:
Code
var c = function DoNothing


 

Ty3uKДата: Понедельник, 16 Апреля 2012, 14:46:41 | Сообщение # 109
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, точно. Сейчас запилю :)

Добавлено (16 Апрель 2012, 14:36:32)
---------------------------------------------

Quote (SirNikolas)
handle
готово
Quote (SirNikolas)
var c = function DoNothing
готово
:)

Добавлено (16 Апрель 2012, 14:46:41)
---------------------------------------------

Code
[size=10][img]http://img337.imageshack.us/img337/2760/logoran.png[/img] - небольшой препроцессор для языка Jass 2, который запускается перед парсером vJass (JassHelper). Полную информацию о возможностях вы можете прочитать в мануале, все ссылки внизу.[/size]
[c][hr][size=15][color=orange][b]Ссылки[/b][/size][/color][hr]
[size=15][url=http://simpledomain.16mb.com/download/JASP_manual_RU.html]Всегда свежий билд мануала[/url] | [url=https://sourceforge.net/p/wc3jasp]JASP on SourceForge[/url] | [url=http://code.google.com/p/jasp/]JASP on code.google.com[/url][/size][/c]

Ник, обнови плз первый пост и, если можно, закрепи его как шапку темы :3


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Понедельник, 16 Апреля 2012, 20:46:39 | Сообщение # 110
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (SirNikolas)
какой тип давать?
handle. Либо можно string или code, но я бы предпочел handle.
Вот еще вспомнил:
Code
var c = function DoNothing

можно сделать так:
если эта var-ка в функции еще где-то используется, задать ей тип, который используется там, если же нет, вообще не создавать её.
example:
Code
function A takes nothing returns nothing
var c=null
call DoNothing()
endfunction

function B takes nothing returns nothing
var c = null
call DoNothing()
if(IsUnitType(c, UNIT_TYPE_MECHANICAL) != true) then
call KillUnit(c)
endif
free c
endfunction

после JASP:
Code
function A takes nothing returns nothing
call DoNothing()
endfunction

function B takes nothing returns nothing
local unit c = null
call DoNothing()
if(IsUnitType(c, UNIT_TYPE_MECHANICAL) != true) then
call KillUnit(c)
endif
set c = null
endfunction

но дело конечно твоё, и возможно это труднореализуемо, но если надумаешь, позаботься чтобы если переменная используется одновременно как скажем unit и effect, вылетала соответствующая ошибка. молодец что продолжаешь работать :)

Добавлено (16 Апрель 2012, 20:46:39)
---------------------------------------------
p.s. сори за ноу пробел, редактор лень открывать ^^




Сообщение отредактировал Hexing - Понедельник, 16 Апреля 2012, 20:47:39
 

Ty3uKДата: Понедельник, 16 Апреля 2012, 20:51:28 | Сообщение # 111
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Так а зачем давать значение нулл в случае последующего задания значения? Я же сделал алгоритм, согласно которому можно объявить переменную без значения, а парсер, если увидит в коде объявление значения, подставит нужный тип. Ну в мануале есть :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Понедельник, 16 Апреля 2012, 20:57:31 | Сообщение # 112
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
Так а зачем давать значение нулл в случае последующего задания значения? Я же сделал алгоритм, согласно которому можно объявить переменную без значения, а парсер, если увидит в коде объявление значения, подставит нужный тип. Ну в мануале есть

ну ты же хэндл присваеваешь, а так будет более гибко и работаспособно.
Code
function B takes nothing returns nothing  
var c = null  
call DoNothing()  
if(IsUnitType(c, UNIT_TYPE_MECHANICAL) != true) then  
call KillUnit(c)  
endif  
free c  
endfunction

это ведь у тебя не сработает? но как хочешь


 

Ty3uKДата: Понедельник, 16 Апреля 2012, 21:00:59 | Сообщение # 113
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ну да, тут косяк- переменной надо как минимум дать значение через set. :(

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DreiiДата: Среда, 18 Апреля 2012, 06:54:26 | Сообщение # 114
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
запили case

 

HexingДата: Среда, 18 Апреля 2012, 07:32:07 | Сообщение # 115
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Dreii)
запили case

угу свитч это круто


 

Ty3uKДата: Среда, 18 Апреля 2012, 15:58:24 | Сообщение # 116
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:

JASP v0.2 beta вышел

Господа, таки вышла новенькая версия парсера, в которой я исправил старые баги, а так же добавил кучу новых функций (о которых вы уже читали в мануале. Если кто не читал - вперед на мины).
Текущий лог (на 18.04.2012):
  • Устранил баги с комментариями
  • Полностью переписал ядро программы, теперь она работает быстрее
  • Улучшил взаимодействие с библиотекой SFMpq.dll
  • Добавил новые функции (подробнее - в мануале)
  • Написал мануал :3


Ссылки на скачивание висят на SourceForge и code.google, советую скачать "мой" JNGP - мало того, что в распакованном виде он весит всего 17 мб (сжатие dll и exe сделало свое дело), так еще у вас не будет заморочек с установкой. Всем спасибо за внимание :)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Среда, 18 Апреля 2012, 16:56:59
 

DreiiДата: Среда, 18 Апреля 2012, 18:14:34 | Сообщение # 117
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
воздержусь от беты. Поставлю релизную версию, ну или бету как начну делать нью проджект ^_^

 

Ty3uKДата: Среда, 18 Апреля 2012, 18:20:51 | Сообщение # 118
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Все версии до 1.0 будут беты. Но они отточены до состояния релиза, просто даю им префикс бета

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

[DUОS]Дата: Среда, 18 Апреля 2012, 18:22:18 | Сообщение # 119
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Запилишь фичи из делфи в этот жасс? :)

НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

Ty3uKДата: Среда, 18 Апреля 2012, 18:23:42 | Сообщение # 120
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ну смотря какие :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DreiiДата: Среда, 18 Апреля 2012, 21:42:56 | Сообщение # 121
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
[DUОS], тут уже пол дельфи живет

 

Ty3uKДата: Среда, 18 Апреля 2012, 21:50:54 | Сообщение # 122
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Могу запилить функцию FreeAndNil :)

Добавлено (18 Апрель 2012, 21:50:54)
---------------------------------------------
Вообще у меня есть идея запилить функцию определения длинны массива


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DragoNДата: Среда, 18 Апреля 2012, 23:27:58 | Сообщение # 123
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Quote (Ty3uK)

Вообще у меня есть идея запилить функцию определения длинны массива

.length?
зачем?обычно сам следишь за его длинной же)


El Psy Congroo
 

Ty3uKДата: Среда, 25 Апреля 2012, 16:17:24 | Сообщение # 124
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ну да, есть такое. Итак, следующая версия будет оптимизированна под возможности vJass. То есть всякие публик, приваты, статик и прочее теперь будут работать и в жаспе :)

Добавлено (25 Апрель 2012, 16:17:24)
---------------------------------------------
Господа, есть хорошая новость - я запилил в жасп обновлялку. То есть теперь будет достаточно нажать на одну кнопочку в меню :)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Среда, 25 Апреля 2012, 16:44:48 | Сообщение # 125
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Появился вопрос. Ты ведь парсишь код после cJass? Значит, нельзя использовать библиотеку "cj_typesEx.j", не так ли?

 

Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » JASP (Just Another Script Preprocessor)
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz