X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=JSDOC%2FToken.vala;h=9d507441423db21a5f5bd406135fa5596b050785;hb=b2307154a19f5eec25689a33d9008fa357212638;hp=96a601c52465b88c0480505890412a8b06616985;hpb=044bd62c8c7f4c073580f7f12d9e157c28e934ff;p=gnome.introspection-doc-generator diff --git a/JSDOC/Token.vala b/JSDOC/Token.vala index 96a601c..9d50744 100644 --- a/JSDOC/Token.vala +++ b/JSDOC/Token.vala @@ -27,60 +27,73 @@ * * */ +namespace JSDOC +{ + int Token_id = 1; -public class JSDOC.Token : Object { - - public string data; - public string type; - public string name; - public int line; - public string prefix; - - public string outData; - - public string identifier; + public class Token : Object { + + int id; + + public string data; + public string type; + public string name; + public int line; + public string prefix; + + public string outData; + + public string identifier; + + // used to stuff tokens together when building a tree.. + public Gee.ArrayList> items; + + // props??? what's this??? + + public Token(string data, string type, string name, int line) + { + this.data = data; + this.type = type; + this.name = name; + this.line = line; + this.prefix = ""; + this.outData = null; // used by packer/scopeparser + this.identifier = null; // used by scope + this.id = tokid++; + + + this.items = new Gee.ArrayList>(); + } - public Token(string data, string type, string name, int line) { - this.data = data; - this.type = type; - this.name = name; - this.line = line; - this.prefix = ""; - this.outData = null; // used by packer/scopeparser - this.identifier = null; // used by scope - this.id = Token.id++; - }, - Object, - { - toString: function() + public string asString() { - return 'line:' + this.line + ', type:' + this.type + - ', name:' + this.name + ', data:' + this.data + - ((this.outData === false) ? '' : ( 'outData : ' + this.outData)); - }, + return "line:%d, type %s, name %s, data : %s , outData: %s".printf( + this.line, + this.type, + this.name, + this.data, + this.outData == null ? "" : this.outData + ) + + } - toRaw : function(lvl) + public string toRaw(int lvl = 0) { - lvl = lvl || 0; - var ret = this.data ; + var ret = this.data ; - if (this.items) { - var ar = []; - this.items.forEach( function(ai) { - - var str = ''; - ai.forEach( function(it) { - str += it.toRaw(lvl + 1); - }) - ar.push(str); - - }) - ret += ar.join(''); + forach(var ai in this.items ) { + string str = ""; + foreach( var it in ai) { + str += it.toRaw(lvl+1); + } + ret += str; } + + /* -- what is a prop.. if (this.props) { for (var i in this.props) { ret += this.props[i].key.toRaw(lvl+1) + ' : '; @@ -91,12 +104,12 @@ public class JSDOC.Token : Object { } } - + */ return this.prefix + ret; }, - + /* toJS : function() { try { @@ -107,11 +120,11 @@ public class JSDOC.Token : Object { return "ERROR unparsable" + this.data; } }, - + */ - is : function(what) { - return this.name === what || this.type === what; + public bool is(string what) { + return this.name == what || this.type == what; } }); -Token.id = 0; \ No newline at end of file + \ No newline at end of file