changeset 10:02b20292f187

Added fib sample
author Mike Pavone <pavone@retrodev.com>
date Wed, 21 Mar 2012 21:25:10 -0700
parents 37d7f60a8ea1
children 5447cff52da6
files jsbackend.js samples/fib.tp testscripttags.html
diffstat 3 files changed, 43 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/jsbackend.js	Wed Mar 21 21:15:32 2012 -0700
+++ b/jsbackend.js	Wed Mar 21 21:25:10 2012 -0700
@@ -16,6 +16,17 @@
 	throw new Error("can't make val into object");
 }
 
+function setP(o, p, val)
+{
+	o[p] = val;
+	return o;
+}
+
+function getP(o, p)
+{
+	return o[p];
+}
+
 op.prototype.toJS = function(symbols, isReceiver) {
 	var ret = '(' + this.left.toJS(symbols) +' '+ (this.op == '=' ? '==' : this.op) +' '+ this.right.toJS(symbols) + ')';
 	if (isReceiver) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/samples/fib.tp	Wed Mar 21 21:25:10 2012 -0700
@@ -0,0 +1,31 @@
+#{
+
+console <- foreign: #{
+	log <- foreign: :val {}
+}
+
+true <- #{
+  if:else <- :self trueblock :elseblock {
+    trueblock:
+  }
+}
+
+false <- #{
+  if:else <- :self trueblock :elseblock {
+    elseblock:
+  }
+}
+
+fib <- :n {
+  if: n < 2 {
+    1
+  } else: {
+    (fib: n-1) + (fib: n-2)
+  }
+}
+
+main <- {
+  console log: (fib: 30)
+}
+
+}
--- a/testscripttags.html	Wed Mar 21 21:15:32 2012 -0700
+++ b/testscripttags.html	Wed Mar 21 21:25:10 2012 -0700
@@ -8,7 +8,7 @@
 	<script src="compiler.js"></script>
 	<script src="jsbackend.js"></script>
 	<script src="scripttags.js"></script>
-	<!-- <script src="samples/fib.tp" type="text/tabletprog"></script> -->
+	<script src="samples/fib.tp" type="text/tabletprog"></script>
 	<script type="text/tabletprog">
 		#{
 			console <- foreign: #{