aboutsummaryrefslogtreecommitdiff
path: root/treetree.js
diff options
context:
space:
mode:
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;