+ /**
+ * findPuncToken - find the id of a token (previous to current)
+ * need to back check syntax..
+ *
+ * @arg {Array} tokens the array of tokens.
+ * @arg {String} token data (eg. '(')
+ * @arg {Number} offset where to start reading from
+ * @return {Number} position of token
+ */
+ findPuncToken : function(tokens, data, n) {
+ n = n || tokens.length -1;
+ var stack = 0;
+ while (n > -1) {
+
+ if (!stack && tokens[n].data == data) {
+ return n;
+ }
+
+ if (tokens[n].data == ')' || tokens[n].data == '}') {
+ stack++;
+ n--;
+ continue;
+ }
+ if (stack && (tokens[n].data == '{' || tokens[n].data == '(')) {
+ stack--;
+ n--;
+ continue;
+ }
+
+
+ n--;
+ }
+ return -1;
+ },
+ /**
+ * lastSym - find the last token symbol
+ * need to back check syntax..
+ *
+ * @arg {Array} tokens the array of tokens.
+ * @arg {Number} offset where to start..
+ * @return {Token} the token
+ */
+ lastSym : function(tokens, n) {
+ for (var i = n-1; i >= 0; i--) {
+ if (!(tokens[i].is("WHIT") || tokens[i].is("COMM"))) return tokens[i];
+ }
+ return null;
+ },
+
+
+