Mercurial > repos > tabletprog
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: #{