# HG changeset patch # User Michael Pavone # Date 1406311440 25200 # Node ID 80e224fff56731cda63002b2b7c6b988d99f855f # Parent eaf0a014d18b4ec52ad6fe20f0b9184f41a4161c Fix handling of true case in if:else diff -r eaf0a014d18b -r 80e224fff567 code/lmc.tp --- a/code/lmc.tp Fri Jul 25 10:56:27 2014 -0700 +++ b/code/lmc.tp Fri Jul 25 11:04:00 2014 -0700 @@ -123,6 +123,7 @@ args <- args tail tlabel <- prog makeLabel: "true" flabel <- prog makeLabel: "false" + elabel <- prog makeLabel: "end" prog add: (inst: "TSEL" #[ tlabel flabel @@ -131,11 +132,17 @@ foreach: ((args value) expressions) :idx expr { compileExpr: expr } + prog add: (inst: "LDC" #[1]) + prog add: (inst: "TSEL" #[ + elabel + elabel + ]) args <- args tail prog setLabel: flabel foreach: ((args value) expressions) :idx expr { compileExpr: expr } + prog setLabel: elabel } _funHandlers set: "isInteger?" :args { compileExpr: (args value)