Skip to content

Commit 8550c1c

Browse files
committed
Make macro output easier to read
1 parent 83ed839 commit 8550c1c

File tree

1 file changed

+30
-38
lines changed

1 file changed

+30
-38
lines changed

src/compiler.jl

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -295,32 +295,28 @@ function generate_tilde(left, right, model_info)
295295
sampler = model_info[:main_body_names][:sampler]
296296

297297
@gensym tmpright
298-
expr = quote
299-
$tmpright = $right
300-
$(DynamicPPL.assert_dist)($tmpright, msg = $(wrong_dist_errormsg(@__LINE__)))
301-
end
298+
top = [:($tmpright = $right),
299+
:($(DynamicPPL.assert_dist)($tmpright, msg = $(wrong_dist_errormsg(@__LINE__))))]
302300

303301
if left isa Symbol || left isa Expr
304302
@gensym out vn inds
305-
push!(expr.args,
306-
:($vn = $(varname(left))),
307-
:($inds = $(vinds(left))))
308-
309-
assumption = quote
310-
$out = $(DynamicPPL.tilde_assume)($ctx, $sampler, $tmpright, $vn, $inds,
311-
$vi)
312-
$left = $out[1]
313-
$(DynamicPPL.acclogp!)($vi, $out[2])
314-
end
303+
push!(top, :($vn = $(varname(left))), :($inds = $(vinds(left))))
304+
305+
assumption = [
306+
:($out = $(DynamicPPL.tilde_assume)($ctx, $sampler, $tmpright, $vn, $inds,
307+
$vi)),
308+
:($left = $out[1]),
309+
:($(DynamicPPL.acclogp!)($vi, $out[2]))
310+
]
315311

316312
# It can only be an observation if the LHS is an argument of the model
317313
if vsym(left) in model_info[:args]
318314
@gensym isassumption
319315
return quote
320-
$expr
316+
$(top...)
321317
$isassumption = $(DynamicPPL.isassumption(model, left))
322318
if $isassumption
323-
$assumption
319+
$(assumption...)
324320
else
325321
$(DynamicPPL.acclogp!)(
326322
$vi,
@@ -332,14 +328,14 @@ function generate_tilde(left, right, model_info)
332328
end
333329

334330
return quote
335-
$expr
336-
$assumption
331+
$(top...)
332+
$(assumption...)
337333
end
338334
end
339335

340336
# If the LHS is a literal, it is always an observation
341337
return quote
342-
$expr
338+
$(top...)
343339
$(DynamicPPL.acclogp!)(
344340
$vi,
345341
$(DynamicPPL.tilde_observe)($ctx, $sampler, $tmpright, $left, $vi)
@@ -361,32 +357,28 @@ function generate_dot_tilde(left, right, model_info)
361357
sampler = model_info[:main_body_names][:sampler]
362358

363359
@gensym tmpright
364-
expr = quote
365-
$tmpright = $right
366-
$(DynamicPPL.assert_dist)($tmpright, msg = $(wrong_dist_errormsg(@__LINE__)))
367-
end
360+
top = [:($tmpright = $right),
361+
:($(DynamicPPL.assert_dist)($tmpright, msg = $(wrong_dist_errormsg(@__LINE__))))]
368362

369363
if left isa Symbol || left isa Expr
370364
@gensym out vn inds
371-
push!(expr.args,
372-
:($vn = $(varname(left))),
373-
:($inds = $(vinds(left))))
374-
375-
assumption = quote
376-
$out = $(DynamicPPL.dot_tilde_assume)($ctx, $sampler, $tmpright, $left,
377-
$vn, $inds, $vi)
378-
$left .= $out[1]
379-
$(DynamicPPL.acclogp!)($vi, $out[2])
380-
end
365+
push!(top, :($vn = $(varname(left))), :($inds = $(vinds(left))))
366+
367+
assumption = [
368+
:($out = $(DynamicPPL.dot_tilde_assume)($ctx, $sampler, $tmpright, $left,
369+
$vn, $inds, $vi)),
370+
:($left .= $out[1]),
371+
:($(DynamicPPL.acclogp!)($vi, $out[2]))
372+
]
381373

382374
# It can only be an observation if the LHS is an argument of the model
383375
if vsym(left) in model_info[:args]
384376
@gensym isassumption
385377
return quote
386-
$expr
378+
$(top...)
387379
$isassumption = $(DynamicPPL.isassumption(model, left))
388380
if $isassumption
389-
$assumption
381+
$(assumption...)
390382
else
391383
$(DynamicPPL.acclogp!)(
392384
$vi,
@@ -398,14 +390,14 @@ function generate_dot_tilde(left, right, model_info)
398390
end
399391

400392
return quote
401-
$expr
402-
$assumption
393+
$(top...)
394+
$(assumption...)
403395
end
404396
end
405397

406398
# If the LHS is a literal, it is always an observation
407399
return quote
408-
$expr
400+
$(top...)
409401
$(DynamicPPL.acclogp!)(
410402
$vi,
411403
$(DynamicPPL.dot_tilde_observe)($ctx, $sampler, $tmpright, $left, $vi)

0 commit comments

Comments
 (0)