56
56
function parse_variable_def! (dict, mod, arg, varclass)
57
57
MLStyle. @match arg begin
58
58
:: Symbol => generate_var! (dict, arg, varclass)
59
- Expr (:call , a, b) => generate_var! (dict, a, set_iv! (dict, b) , varclass)
59
+ Expr (:call , a, b) => generate_var! (dict, a, b , varclass)
60
60
Expr (:(= ), a, b) => begin
61
61
var = parse_variable_def! (dict, mod, a, varclass)
62
62
def = parse_default (mod, b)
@@ -106,15 +106,6 @@ function generate_var!(dict, a, b, varclass)
106
106
end
107
107
var
108
108
end
109
- function set_iv! (dict, b)
110
- prev_b = get! (dict, :independent_variable_name ) do
111
- b
112
- end
113
- if prev_b != b
114
- error (" Conflicting independent variable $prev_b and $b " )
115
- end
116
- b
117
- end
118
109
function parse_default (mod, a)
119
110
a = Base. remove_linenums! (deepcopy (a))
120
111
MLStyle. @match a begin
@@ -189,17 +180,17 @@ end
189
180
function parse_components! (exprs, cs, dict, body)
190
181
expr = Expr (:block )
191
182
push! (exprs, expr)
192
- comps = Pair{String, String}[]
183
+ comps = Vector{ String}[]
193
184
for arg in body. args
194
185
arg isa LineNumberNode && continue
195
186
MLStyle. @match arg begin
196
187
Expr (:(= ), a, b) => begin
197
188
push! (cs, a)
189
+ push! (comps, [String (a), String (b. args[1 ])])
198
190
arg = deepcopy (arg)
199
191
b = deepcopy (arg. args[2 ])
200
192
push! (b. args, Expr (:kw , :name , Meta. quot (a)))
201
193
arg. args[2 ] = b
202
- push! (comps, String (a) => readable_code (b))
203
194
push! (expr. args, arg)
204
195
end
205
196
_ => error (" `@components` only takes assignment expressions. Got $arg " )
@@ -224,7 +215,7 @@ function parse_extend!(exprs, ext, dict, body)
224
215
end
225
216
ext[] = a
226
217
push! (b. args, Expr (:kw , :name , Meta. quot (a)))
227
- dict[:extend ] = Symbol .(vars. args), a, readable_code (b)
218
+ dict[:extend ] = [ Symbol .(vars. args), a, readable_code (b)]
228
219
push! (expr. args, :($ a = $ b))
229
220
if vars != = nothing
230
221
push! (expr. args, :(@unpack $ vars = $ a))
0 commit comments