51
51
# Build variables more easily
52
52
function _parse_vars (macroname, fun, x)
53
53
ex = Expr (:block )
54
- lhss = Symbol[]
54
+ var_names = Symbol[]
55
55
# if parsing things in the form of
56
56
# begin
57
57
# x
@@ -60,33 +60,30 @@ function _parse_vars(macroname, fun, x)
60
60
# end
61
61
x = flatten_expr! (x)
62
62
for _var in x
63
- iscall = typeof (_var) <: Expr && _var. head == :call
63
+ iscall = isa (_var, Expr) && _var. head == :call
64
64
issym = _var isa Symbol
65
- @assert iscall || issym " @$macroname expects a tuple of expressions! \n E.g. `@$macroname x y z` "
65
+ @assert iscall || issym " @$macroname expects a tuple of expressions ( `@$macroname x y z(t)`) "
66
66
67
67
if iscall
68
68
dependents = :(Variable[$ (_var. args[2 : end ]. .. )])
69
- lhs = _var. args[1 ]
69
+ var_name = _var. args[1 ]
70
70
else
71
71
dependents = Variable[]
72
- lhs = _var
72
+ var_name = _var
73
73
end
74
74
75
- push! (lhss, lhs)
76
- expr = :( $ lhs = $ fun ( Symbol ($ (String (lhs))) ,
77
- dependents = $ dependents))
75
+ push! (var_names, var_name)
76
+ expr = :($ var_name = $ fun ($ (Meta. quot (var_name)), dependents = $ dependents))
78
77
push! (ex. args, expr)
79
78
end
80
- push! (ex. args, build_expr (:tuple , lhss ))
79
+ push! (ex. args, build_expr (:tuple , var_names ))
81
80
return ex
82
81
end
83
-
84
- for funs in [(:Unknown , :Unknown ), (:Param , :Parameter )]
85
- @eval begin
86
- macro ($ (funs[1 ]))(x... )
87
- esc (_parse_vars (String ($ funs[1 ]), $ funs[2 ], x))
88
- end
89
- end
82
+ macro Unknown (xs... )
83
+ esc (_parse_vars (:Unknown , Unknown, xs))
84
+ end
85
+ macro Param (xs... )
86
+ esc (_parse_vars (:Param , Parameter, xs))
90
87
end
91
88
92
89
function _const_assign (x)
0 commit comments