+/**
+ * storing the tree
+ */
+var astTree : tkTree = [];
+
+/**
+ * TYPE_PAIR ::= TYP_ID ID
+ */
+var typePair = (x : MaybeTokensAST)=>
+{
+
+
+ let a = thenDo(thenDo(x.maybeTokens, typeName), tId);
+ if (a._tag == "Some"){
+ let matched = a.value.matched;
+ let slice = matched.slice(matched.length-2);
+ console.log("slice"+slice);
+
+ let b : MaybeTokensAST = {maybeTokens : a, ast : slice};
+ return b;
+ }
+ else{
+ let b : MaybeTokensAST= {maybeTokens : a, ast : []};
+ return b;
+ }
+}
+
+/**
+ * function's arguments
+ * FN_ARGS = TYPE_PAIR ("," TYPE_PAIR)+
+ */
+
+var fnArgs = (x : TokenMatcheePair)=>
+ {
+ let wrapper : MaybeTokensAST = {maybeTokens : toSome(x), ast : []};
+ let a = typePair(wrapper);
+ console.log("AAAAA"+util.inspect(a, { showHidden: true, depth: null }));
+ let abanibi = typePair(a);
+ console.log("ABNB"+util.inspect(abanibi, { showHidden: true, depth: null }));
+
+
+ return {maybeTokens : abanibi.maybeTokens, ast : [a.ast, abanibi.ast]};
+
+ };
+
+let tree = fnArgs(commandTPair);
+console.log("CHRANN"+util.inspect(tree, { showHidden: true, depth: null }));