JASP
|
|
Ty3uK | Дата: Понедельник, 02 Апреля 2012, 12:26:42 | Сообщение # 1 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| - небольшой препроцессор для языка Jass2, который запускается перед парсером vJass (JassHelper). Полную информацию о возможностях вы можете прочитать в мануале, все ссылки внизу.
|
|
|
|
Ty3uK | Дата: Воскресенье, 15 Апреля 2012, 18:25:53 | Сообщение # 101 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Итак, господа, я полностью разобрался с типизацией. Теперь она работает, даже если начальное значение не было объявленно (при условии, что потом вы дадите ей значение). То есть можно объявить и так:Quote var b //actions set b = true парсер подставит переменной тип, в зависимости от значения
|
|
|
|
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
|
|
|
|
Hexing | Дата: Понедельник, 16 Апреля 2012, 11:21:34 | Сообщение # 104 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (DragoN) пиши свой движок @ будь плохим парнем opengl/directx? шутишь? по канвасу пиксели отрисовывать через TImage.canvas, какой directx лол, это для лохов и я уже написал его(openGL юзал), и уже удалил, потому что я ленивая задница и ничего не довожу до конца
|
|
|
|
Ty3uK | Дата: Понедельник, 16 Апреля 2012, 13:55:44 | Сообщение # 105 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Парни, давайте оффнем несабжевые разговоры? Подошел очередной билд мануала и скоро я обновлю сам парсер. Пока предлагаю ознакомиться с предпоследним пунктом в оглавлении под названием "Нетипизированные переменные". Всем спасибо за внимание, жду отзывов и комментариев :3
|
|
|
|
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) --------------------------------------------- Ушел мыть пол
|
|
|
|
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) 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
|
|
|
|
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
Блокировки:
| Так а зачем давать значение нулл в случае последующего задания значения? Я же сделал алгоритм, согласно которому можно объявить переменную без значения, а парсер, если увидит в коде объявление значения, подставит нужный тип. Ну в мануале есть
|
|
|
|
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.
|
|
|
|
Dreii | Дата: Среда, 18 Апреля 2012, 06:54:26 | Сообщение # 114 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| запили case
|
|
|
|
Hexing | Дата: Среда, 18 Апреля 2012, 07:32:07 | Сообщение # 115 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| угу свитч это круто
|
|
|
|
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 сделало свое дело), так еще у вас не будет заморочек с установкой. Всем спасибо за внимание
Сообщение отредактировал 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 будут беты. Но они отточены до состояния релиза, просто даю им префикс бета
|
|
|
|
[DUОS] | Дата: Среда, 18 Апреля 2012, 18:22:18 | Сообщение # 119 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Запилишь фичи из делфи в этот жасс?
|
|
|
|
Ty3uK | Дата: Среда, 18 Апреля 2012, 18:23:42 | Сообщение # 120 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Ну смотря какие
|
|
|
|
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) --------------------------------------------- Вообще у меня есть идея запилить функцию определения длинны массива
|
|
|
|
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) --------------------------------------------- Господа, есть хорошая новость - я запилил в жасп обновлялку. То есть теперь будет достаточно нажать на одну кнопочку в меню
|
|
|
|
SirNikolas | Дата: Среда, 25 Апреля 2012, 16:44:48 | Сообщение # 125 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Появился вопрос. Ты ведь парсишь код после cJass? Значит, нельзя использовать библиотеку "cj_typesEx.j", не так ли?
|
|
|
|