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)