JNGP: Rebuild от PT153

Jass New Gen Pack - расширенный редактор карт для Warcraft 3.
Сборка от PT153 оптимизирована для vJass и включает в себя обновления pjass.exe и TESH.
102 9 011
1
28
3 года назад
Отредактирован PT153
1
foreach по группам
В мануале этого нет.
flushlocals
также нет клоунского ограничения на объявление переменных в начале функции
Это не имеет никакого отношения в синтаксису.
В cJass есть whilenot, do - whilenot и препроцессорные штуки include, define и enum и прочие препроцессорные директивы, инкремент и декремент. У ZINC препроцессор такой же, как и у vJass, есть циклы for и while. Также отличается определение функций. На этом синтаксические отличия заканчиваются. В обоих одинаковые логические операторы, не нужно писать local, set и call, блоки определяются скобками. Тем самым бóльшая часть кода будет идентична с точки зрения подсветки и автодополнения.
И очень классно ты переделал вот это.
на самом деле cJass мало чем отличается от ZINC по синтаксису
В это.
Насчет отсутствия отличий с Zinc - бред
Никто не писал, что отличий вовсе нет.
0
29
3 года назад
Отредактирован Doc
0
Clamp:
В наши дни дефайны лишь стон изголодавшегося разума по вменяемо написанному коду.
"этим не пользуюсь я - это бесполезно всем"
Не надо утрировать. Текстовый препроцессинг откровенно устаревшая фича, которая заменяется адекватными гигиеническими макросами и строго определенной внутри основного языка семантикой метапрограммирования в целом.
Насчет отсутствия отличий с Zinc - бред, помимо упомянутых макросов есть вещи типа flushlocals и foreach по группам (через генерацию FirstInGroup), а также нет клоунского ограничения на объявление переменных в начале функции.
0
30
3 года назад
0
В наши дни дефайны лишь стон изголодавшегося разума по вменяемо написанному коду.
"этим не пользуюсь я - это бесполезно всем"
3
17
3 года назад
3
дефайны являются невероятно мощным инструментом для решения многих задач
Невероятно мощным инструментам полагается иметь свой синтаксис и семантику. Например, к месту упомянутые дженерики или аннотации. В наши дни дефайны лишь стон изголодавшегося разума по вменяемо написанному коду.
3
30
3 года назад
3
GetLocalPlayer, у дефайнов есть возможность определять области видимости, и корректное использованные дефайны являются невероятно мощным инструментом для решения многих задач, например, реализации дженериков.
0
28
3 года назад
0
Clamp, так и есть.
0
17
3 года назад
0
Кет:
GetLocalPlayer, а чем плохи макросы?
В рамках констант особо ничем, окромя засорения пространства имен. Вce выше этого тянет за собой сложности отладки и непредсказуемое поведение кода. Простой пример:
nothing Test()
{
    integer a = 2
    integer b = 3
    a = square(a++)
    b = square(++b)
    BJDebugMsg(I2S(a))
    BJDebugMsg(I2S(b))
}
Что будет выведено на экран, если square, это функция и что, если это макрос? А в процессе работы, тебе известно что это функция или макрос? Будешь ли ты в состоянии держать в уме, что это макрос, если у тебя десятки тысяч строк кода? А когда ты будешь волосы на голове рвать, не понимая что происходит в больших системах с кучей взаимосвязей?
За большим количеством примеров можно обратится к гуглу.
1
33
3 года назад
1
GetLocalPlayer, а чем плохи макросы?
4
17
3 года назад
4
В нём есть #define, это киллер-фича cJass по сути
Это обоюдоострый меч, но где "обоюдоострый" подразумевает второй клинок вместо рукояти.