if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
var identifier = scope.getIdentifier(token.data,token) ;
- if (identifier == false) {
+ if (identifier == null) {
scope.declareIdentifier(token.data, token);
} else {
token.identifier = identifier;
// should do a bit more checking!!!! (what about wierd char's in the string..
var str = token.data.substring(1,token.data.length-1);
- if (Regex.match_simple ("^[a-z_]+$", str) && this.idents.index_of(str) < 0) {
+ if (Regex.match_simple ("^[a-z_]+$", str,GLib.RegexCompileFlags.CASELESS) && this.idents.index_of(str) < 0) {
token.outData = str;
}
//println("GOT IDENT: <B>" + symbol + "</B><BR/>");
//println("GOT IDENT (2): <B>" + symbol + "</B><BR/>");
- identifier = this.getIdentifier(symbol, scope, token);
+ var identifier = this.getIdentifier(symbol, scope, token);
- if (identifier == false) {
+ if (identifier == null) {
// BUG!find out where builtin is defined...
if (symbol.length <= 3 && Scope.builtin.indexOf(symbol) < 0) {
// Here, we found an undeclared and un-namespaced symbol that is
//print("MATCH!?");
var _t = this;
-
- token.prefix.replace(/eval:var:([a-z_]+)/ig, function(m, a) {
- //print("GOT: " + a);
- var hi = _t.getIdentifier(a, scope, token);
- // println("PROTECT "+a+" from munge" + (hi ? "FOUND" : "MISSING"));
- if (hi) {
+ var regex = new GLib.Regex ("eval:var:([a-z_]+)",GLib.RegexCompileFlags.CASELESS );
+
+ regex.replace_eval (token.prefix, token.prefix.length, 0, 0, (match_info, result) => {
+ var a = match_info.fetch(0);
+ var hi = this.getIdentifier(a, scope, token);
+ // println("PROTECT "+a+" from munge" + (hi ? "FOUND" : "MISSING"));
+ if (hi.length > 0) {
// print("PROTECT "+a+" from munge");
//print(JSON.stringify(hi,null,4));
hi.toMunge = false;
var identifier = this.getIdentifier(symbol, scope, token);
//println("<B>??</B>");
- if (identifier == false) {
+ if (identifier == null) {
if (symbol.length <= 3 && Scope.builtin.indexOf(symbol) < 0) {
// Here, we found an undeclared and un-namespaced symbol that is
if (this.mode == ScopeParserMode.BUILDING_SYMBOL_TREE) {
if (token.name == "EVAL") {
+
+
//print(JSON.stringify(token,null,4));
- if (token.prefix && token.prefix.match(/eval:var:/g)) {
+
+ if (token.prefix.length > 0 && Regex.match_simple ("eval:var:", token.prefix,GLib.RegexCompileFlags.CASELESS)) {
// look for eval:var:noreplace\n
// print("GOT MATCH?");
- var _t = this;
- token.prefix.replace(/eval:var:([a-z]+)/ig, function(m, a) {
-
+
+
+ var regex = new GLib.Regex ("eval:var:([a-z_]+)",GLib.RegexCompileFlags.CASELESS );
+
+ regex.replace_eval (token.prefix, token.prefix.length, 0, 0, (match_info, result) => {
+ var a = match_info.fetch(0);
//print("PROTECT: " + a);
- var hi = _t.getIdentifier(a, scope, token);
+ var hi = this.getIdentifier(a, scope, token);
//println("PROTECT "+a+" from munge" + (hi ? "FOUND" : "MISSING"));
- if (hi) {
+ if (hi != null) {
// println("PROTECT "+a+" from munge");
hi.toMunge = false;
}
}
- void parseCatch(scope) {
+ void parseCatch(Scoope scope) {
//token = getToken(-1);
//assert scope.getParentScope() == globalScope;
scope.preventMunging();
- },
+ }
- string getIdentifier(string symbol, Scope scope, Token token)
+ Token? getIdentifier(string symbol, Scope in_scope, Token token)
{
- string identifier;
+ Token identifier;
+ var scope = in_scope;
while (scope != null) {
identifier = scope.getIdentifier(symbol, token);
//println("ScopeParser.getIdentgetUsedSymbols("+symbol+")=" + scope.getUsedSymbols().join(','));
- if (identifier.length) {
+ if (identifier != null) {
return identifier;
}
scope = scope.parent;
}
- return "";
+ return null;
}
-};
+}