{
int Token_id = 1;
+
+ public class TokenKeyMap : Object {
+ public Token key;
+ public Gee.ArrayList<Token> vals;
+
+ public TokenKeyMap()
+ {
+ this.key = new Token("","VOID", "VOID");
+ this.vals = new Gee.ArrayList<Token>();
+ }
+
+
+ }
+
public class Token : Object {
int id;
public string type;
public string name;
public int line;
- public string prefix;
+ public string prefix; // white space prefix... (when outputing with WS)
public string outData;
- public string identifier;
+ public Token? identifier;
// used to stuff tokens together when building a tree..
public Gee.ArrayList<Gee.ArrayList<Token>> items;
+ // for a object definition, key -> array of tokens..
+ public Gee.HashMap<string,TokenKeyMap> props;
// props??? what's this???
- public Token(string data, string type, string name, int line)
+ public Token(string data, string type, string name, int line = -1)
{
this.data = data;
this.type = type;
this.prefix = "";
this.outData = null; // used by packer/scopeparser
this.identifier = null; // used by scope
- this.id = tokid++;
+ this.id = Token_id++;
this.items = new Gee.ArrayList<Gee.ArrayList<Token>>();
+ this.props = new Gee.HashMap<string,TokenKeyMap>();
}
public string asString()
this.name,
this.data,
this.outData == null ? "" : this.outData
- )
+ );
}
var ret = this.data ;
- forach(var ai in this.items ) {
-
+ foreach(var ai in this.items ) {
+ // supposed to iterate properties???
string str = "";
- foreach( var it in ai) {
- str += it.toRaw(lvl+1);
- }
+ //foreach( var it in ai) {
+ // str += it.toRaw(lvl+1);
+ // }
ret += str;
}
return this.prefix + ret;
- },
+ }
/*
toJS : function() {
public bool is(string what) {
return this.name == what || this.type == what;
}
-});
+ }
+}
\ No newline at end of file