2018-11-20 17:42:39 -06:00
|
|
|
let noargmacro = macro() => {
|
|
|
|
field1 = "value",
|
|
|
|
};
|
|
|
|
|
2018-08-17 22:03:47 -05:00
|
|
|
let simplemacro = macro(arg1, arg2, arg3) => {
|
|
|
|
field1 = arg1,
|
|
|
|
field2 = arg2,
|
|
|
|
field3 = arg3,
|
|
|
|
};
|
|
|
|
|
|
|
|
let cplxmacro = macro(argint, argstr, argfloat) => {
|
|
|
|
field1 = argint + 1,
|
|
|
|
field2 = argstr + " are here",
|
|
|
|
field3 = argfloat - 1.0,
|
2018-08-22 18:58:48 -05:00
|
|
|
boolfield = argint == 1,
|
2018-08-17 22:03:47 -05:00
|
|
|
};
|
|
|
|
|
2018-11-20 17:42:39 -06:00
|
|
|
let noargresult = noargmacro();
|
2018-08-17 22:03:47 -05:00
|
|
|
let simpleresult = simplemacro(1, 2, 3);
|
|
|
|
let cplxresult = cplxmacro(1, "We", 3.0);
|
|
|
|
|
2018-11-20 17:42:39 -06:00
|
|
|
assert |
|
|
|
|
noargresult.field1 == "value";
|
|
|
|
|;
|
2018-11-06 19:40:56 -06:00
|
|
|
assert |
|
|
|
|
simpleresult.field1 == 1;
|
|
|
|
|;
|
|
|
|
assert |
|
|
|
|
simpleresult.field2 == 2;
|
|
|
|
|;
|
|
|
|
assert |
|
|
|
|
simpleresult.field3 == 3;
|
|
|
|
|;
|
2018-08-17 22:03:47 -05:00
|
|
|
|
2018-11-06 19:40:56 -06:00
|
|
|
assert |
|
|
|
|
cplxresult.field1 == 2;
|
|
|
|
|;
|
|
|
|
assert |
|
|
|
|
cplxresult.field2 == "We are here";
|
|
|
|
|;
|
|
|
|
assert |
|
|
|
|
cplxresult.field3 == 2.0;
|
|
|
|
|;
|
|
|
|
assert |
|
|
|
|
cplxresult.boolfield == true;
|
2019-01-08 17:22:46 -06:00
|
|
|
|;
|
|
|
|
|
|
|
|
let macro_tpl_arg = macro(tpl) => {
|
|
|
|
result = tpl.field,
|
|
|
|
};
|
|
|
|
|
|
|
|
let arg_tpl = {
|
|
|
|
field = "value",
|
|
|
|
};
|
|
|
|
|
|
|
|
assert |
|
|
|
|
macro_tpl_arg(arg_tpl).result == arg_tpl.field;
|
2018-11-06 19:40:56 -06:00
|
|
|
|;
|