aboutsummaryrefslogtreecommitdiff
path: root/treetree.js
diff options
context:
space:
mode:
authortomsmeding <hallo@tomsmeding.nl>2014-04-29 13:28:56 +0200
committertomsmeding <hallo@tomsmeding.nl>2014-04-29 13:28:56 +0200
commitc29c78930c583f051df3211d9d815a6fc3658ee8 (patch)
treef008b58f22f79f5aa393f16cc4902a2a50fb53ad /treetree.js
parent571038785a3750db34261b462206e4fb73b206a7 (diff)
Stuff
Diffstat (limited to 'treetree.js')
-rwxr-xr-xtreetree.js33
1 files changed, 26 insertions, 7 deletions
diff --git a/treetree.js b/treetree.js
index c71b12c..2b186ae 100755
--- a/treetree.js
+++ b/treetree.js
@@ -281,12 +281,29 @@ function runCmds(cmds,TR){
TR[1]=inserted_tree;
TR[2]=after_inserted;
break;
- case "INT":break;
- case "FLT":break;
- case "STR":break;
- case "NAN":break;
- case "LEN":break;
- case "SPL":break;
+ case "INT":
+ if(TR==false)throw new TTerror("Cannot INT a non-existant root node!");
+ TR[0]=parseInt(TR[0],10);
+ break;
+ case "FLT":
+ if(TR==false)throw new TTerror("Cannot INT a non-existant root node!");
+ TR[0]=parseInt(TR[0],10);
+ break;
+ case "STR":
+ if(TR==false)throw new TTerror("Cannot INT a non-existant root node!");
+ TR[0]=TR[0].toString();
+ break;
+ case "NAN":
+ TR=[NaN,TR,false];
+ break;
+ case "LEN":
+ if(TR==false)throw new TTerror("Cannot LEN a non-existant root node!");
+ if(typeof TR[0]!="string")TR=[NaN,TR,false];
+ else TR=[TR[0].length,TR,false];
+ break;
+ case "SPL":
+ throw new TTerror("SPL not implemented!");
+ break;
case "SUM":break;
case "DIF":break;
case "PRO":break;
@@ -308,7 +325,9 @@ function runCmds(cmds,TR){
case "GRT":break;
case "TAU":break;
case "E__":break;
- case "RND":break;
+ case "RND":
+ TR=[~~(Math.pow(2,31)*Math.random()),TR,false];
+ break;
case "JMP":break;
case "EXJ":break;
case "IFJ":break;