5151# Build variables more easily
5252function _parse_vars (macroname, fun, x)
5353 ex = Expr (:block )
54- lhss = Symbol[]
54+ var_names = Symbol[]
5555 # if parsing things in the form of
5656 # begin
5757 # x
@@ -60,33 +60,30 @@ function _parse_vars(macroname, fun, x)
6060 # end
6161 x = flatten_expr! (x)
6262 for _var in x
63- iscall = typeof (_var) <: Expr && _var. head == :call
63+ iscall = isa (_var, Expr) && _var. head == :call
6464 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)`) "
6666
6767 if iscall
6868 dependents = :(Variable[$ (_var. args[2 : end ]. .. )])
69- lhs = _var. args[1 ]
69+ var_name = _var. args[1 ]
7070 else
7171 dependents = Variable[]
72- lhs = _var
72+ var_name = _var
7373 end
7474
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))
7877 push! (ex. args, expr)
7978 end
80- push! (ex. args, build_expr (:tuple , lhss ))
79+ push! (ex. args, build_expr (:tuple , var_names ))
8180 return ex
8281end
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))
9087end
9188
9289function _const_assign (x)
0 commit comments