Skip to content

Commit 422846c

Browse files
Clean up variable parsing
1 parent a88c715 commit 422846c

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

src/variables.jl

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ end
5151
# Build variables more easily
5252
function _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!\nE.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
8281
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))
9087
end
9188

9289
function _const_assign(x)

0 commit comments

Comments
 (0)