X-Git-Url: http://git.roojs.org/?p=gnome.introspection-doc-generator;a=blobdiff_plain;f=JSDOC%2FDocTag.js;h=b7f25ca4ebbc9b6a7f7cf34147ba718749e5d516;hp=2edde04d025a0fc601816a48d3af95dbeaa475dc;hb=HEAD;hpb=855729da428585f80a821f8c086b6f5e7f7760bf diff --git a/JSDOC/DocTag.js b/JSDOC/DocTag.js index 2edde04..b7f25ca 100644 --- a/JSDOC/DocTag.js +++ b/JSDOC/DocTag.js @@ -26,6 +26,7 @@ DocTag = XObject.define( this.isOptional = false; this.defaultValue = ""; this.desc = ""; + this.optvalues = false; if (typeof src != "undefined") { this.parse(src); } @@ -42,40 +43,33 @@ DocTag = XObject.define( /** * serialize.. */ - toObject :function(t) + toJSON :function(t) { + var ret = { '*object' : 'DocTag' }; - var ret = { }; for (var i in this) { - if (Symbol.hide.indexOf(i) > -1) { + if (i == 'optvalues') { + ret[i] = this.optvalues; continue; } + switch (typeof(this[i])) { case 'function': - continue; - case 'object': - switch(i) { - //arrays.. - case 'params' : - ret[i] = array2object(this[i],true); - continue; - - //objects.. - case 'augments' : - ret[i] = this[i].toArray(); - continue; - - default: - print("object? :" + i); - Seed.quit(); - } - + continue; + continue; case 'string': case 'number': + case 'boolean': ret[i] = this[i]; continue; + + + default: - print("unknown type:" + typeof(this[i])); + + print("unknown type: (" + i + ")" + typeof(this[i])); + this.toJSON = null; + print(JSON.stringify(this));; Seed.quit(); } } @@ -108,6 +102,26 @@ DocTag = XObject.define( if (Options.LOG) Options.LOG.warn(e); else throw e; } + + // if type == @cfg, and matches (|....|...) + + src = src.trim(); + if (this.title == "cfg" && src.match(/^\([^)]+\)/)) { + var m = src.match(/^\(([^)]+)\)/); + print(m); + if (m[1].match(/\|/)) { + var opts = m[1].trim().split(/\s*\|\s*/); + this.optvalues = opts; + src = src.substring(m[0].length).trim(); + print(src); + + + } + + + } + + this.desc = src; // whatever is left // example tags need to have whitespace preserved