Mercurial > repos > icfp2014
changeset 10:66d0858692a9
Fix operator argument order and add print primitive for the DBUG instruction
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 25 Jul 2014 14:59:52 -0700 |
parents | 526bec3b2090 |
children | 2a74559e07f5 |
files | code/lmc.tp |
diffstat | 1 files changed, 6 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/code/lmc.tp Fri Jul 25 14:45:55 2014 -0700 +++ b/code/lmc.tp Fri Jul 25 14:59:52 2014 -0700 @@ -103,13 +103,8 @@ _opNames set: ">=" "CGTE" _exprHandlers set: (ast binary) :expr syms { - if: (expr op) = "|" { - compileExpr: (expr left) syms: syms - compileExpr: (expr right) syms: syms - } else: { - compileExpr: (expr right) syms: syms - compileExpr: (expr left) syms: syms - } + compileExpr: (expr left) syms: syms + compileExpr: (expr right) syms: syms _opNames ifget: (expr op) :i { prog add: (inst: i #[]) } else: { @@ -173,6 +168,10 @@ prog add: (inst: "LDC" #[0]) prog add: (inst: "CEQ" #[]) } + _funHandlers set: "print" :args syms { + compileExpr: (args value) syms: syms + prog add: (inst: "DBUG" #[]) + } _exprHandlers set: (ast call) :expr syms { tc <- (expr tocall)