new color = COLOR(RED);
Да, таким методом компиляция проходит нормально.
А если вызывать вот так, то компиляция проходит с ошибкой
-l:
new color = COLOR(RED);
Да, таким методом компиляция проходит нормально.
А если вызывать вот так, то компиляция проходит с ошибкой
-l:
Последний раз редактировалось pawnoholic; 16.07.2018 в 00:17.
Опс.. Да...
Попробуй так:
#define COLOR@RED@100<%1,%2> (%1FFCDD2%2) #define COLOR@RED@200<%1,%2> (%1EF9A9A%2) #define COLOR@RED@300<%1,%2> (%1E57373%2) #define COLOR@RED@400<%1,%2> (%1EF5350%2) #define COLOR@RED@500<%1,%2> (%1F44336%2) #define COLOR@RED@600<%1,%2> (%1E53935%2) #define COLOR@RED@700<%1,%2> (%1D32F2F%2) #define COLOR@RED@800<%1,%2> (%1C62828%2) #define COLOR@RED@900<%1,%2> (%1B71C1C%2) #define COLOR(%1) (_:clr@aM:clr@aN:$%1,) #define clr@aM:%8$%0,%1,) clr@rS:COLOR@%0@%1<0x,AA>) #define clr@aN:%8$%0,) clr@rS:COLOR@%0@100<0x,AA>) // 100 - default value. #define clr@rS:%1\32;%0,) clr@rS:%1%0,) COLOR(RED, 800)
pawnoholic (16.07.2018)
Решил немного модифицировать и добавить третий аргумент, но теперь перед вторым и третьим параметром не убирается пробел, пробовал самостоятельно разрешить этот пробел, но так и не понял как это сделать:
#define COLOR(%1) (_:COLOR@A:COLOR@B:COLOR@C:$%1,) #define COLOR@A:%8$%0,%1,%2,) COLOR@S:@COLOR@%0@%1<0x,%2>) #define COLOR@B:%8$%0,%1,) COLOR@S:@COLOR@%0@%1<0x,AA>) #define COLOR@C:%8$%0,) COLOR@S:@COLOR@%0@500<0x,AA>) #define COLOR@S:%1\32;%0,) COLOR@S:%1%0,)
Результат:
(_:COLOR@S:@COLOR@RED@ 500<0x, AA>)
Необходимо:
(_:COLOR@S:@COLOR@RED@500<0x,AA>) -> (_:COLOR@S:(0xF44336AA))
Последний раз редактировалось pawnoholic; 16.07.2018 в 02:53.
Спасибо, только еще пробел остался в таком варианте использования.
new color = (_:COLOR@S:(0xF44336 AA));
А можно еще как то модифицировать, так чтобы можно было и такой вариант вызвать или для такого варианта лучше новое правило сделать?
#define @COLOR@BLACK<%1,%2> (%1000000%2) #define @COLOR@WHITE<%1,%2> (%1FFFFFF%2)
Допустим, есть макрос такого вида
#define SomeFunc1(%0,%1)
"%0" и "%1" - целочисленные переменные. Возможно ли убрать все пробелы между запятой и "%1", не добавляя, при этом, никаких символов или тегов?
В целом, задача заключается в том, чтоб переместить "%1" в начало
#define SomeFunc1(%0,%1) %1 = SomeFunc2(%0)
И если прописать в коде, например, так:
SomeFunc1(var1, var2);
То компилятор ругнётся на кривую табуляцию, так как "var2" перенесётся в начало вместе с пробелом. Собственно, от этого предупреждения и нужно избавиться.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
DeimoS (17.09.2019)
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)