{
- public string VERSION = "1.0.0";
+
+ // extractable via JSON?
+ public string VERSION = "1.0.0" ;
private Packer packer;
for(var i = 0;i < ar.get_length();i++) {
var o = ar.get_object_element(i);
- var sym = Json.gobject_from_data(typeof(Symbol), o) as Symbol;
+ var sym = JSON.gobject_from_data(typeof(Symbol), o) as Symbol;
DocParser.symbols.add(sym);
}
continue;
Parser.finish();
}
-
-
+ /*
+
+ //var txs =
+
+ var tr = new TokenReader(this.packer);
+ tr.keepDocs = true;
+ tr.keepWhite = true;
+ tr.keepComments = true;
+ tr.sepIdents = false;
+ tr.collapseWhite = false;
+ tr.filename = src;
+
+
+ var toks = tr.tokenize( new TextStream(src));
+ if (PackerRun.opt_dump_tokens) {
+ toks.dump();
+ return "";
+ //GLib.Process.exit(0);
+ }
+
+
+ var ts = new TokenStream(toks);
+
+
+
+
+ DocParser.parse(ts, srcFile);
+
+ if (useCache) {
+
+ var ar = DocParser.symbolsToObject(srcFile);
+
+ var builder = new Json.Builder ();
+ builder.begin_array ();
+ for (var i=0;i<ar.size;i++) {
+
+ builder.add_object_value (ar.get(i));
+ }
+ builder.end_array ();
+ Json.Generator generator = new Json.Generator ();
+ Json.Node root = builder.get_root ();
+ generator.set_root (root);
+ generator.pretty= true;
+ generator.ident = 2;
+ generator.to_file(cacheFile);
+
+
+
+ // }
+ }
+
+
+
+ Parser.finish();
+ }
+
+ */
void publish()
{
}
- /**
- * JSON files are lookup files for the documentation
- * - can be used by IDE's or AJAX based doc tools
- *
- *
- */
- JSON.Object publishJSON (Symbol data)
- {
- // what we need to output to be usefull...
- // a) props..
- var cfgProperties = new GLib.ArrayList<Symbol>();
- if (!data.comment.getTag(DocTagTitle.SINGLETON).length) {
- cfgProperties = data.configToArray();
- cfgProperties = cfgProperties.sort((a,b) =>{
- return a.alias.collate(b.alias);
- });
-
- }
-
- var props = new JSON.Array();;
- //println(cfgProperties.toSource());
-
- for(var i =0; i < cfgProperties.size;i++) {
- var p = cfgPropertiesget.get(i);
- var add = new JSON.Object();
- add.set_string_member("name",p.name);
- add.set_string_member("type",p.type);
- add.set_string_member("desc",p.desc);
- add.set_string_member("memberOf", p.memberOf == data.alias ? '' : p.memberOf);
-
- if (p.optvalues.size) {
- add.set_array_member("desc",p.optvalues_as_json_array());
- }
- props.add_object(add );
- }
-
- ///// --- events
- var ownEvents = new Gee.ArrayList<Symbol>();
- for(var i =0; i < data.methods.size;i++) {
- var e = data.methods.get(i);
- if (e.isEvent && e.comment.getTag(DocTagTitle.HIDE) == "") {
- ownEvents.add(e);
- }
- };
- ownEvents.sort((a,b) => {
- return a.name.collate(b.name);
- });
-
- var events = new JSON.Array();
-
- for(var i =0; i < ownEvents.size;i++) {
- var m = ownEvents.get(i);
- var add = new JSON.Object();
- add.set_string_member("name",m.name.substring(1,m.name.length-1);
- add.set_string_member("type","function");
- add.set_string_member("desc",m.desc);
- add.set_string_member("sig", this.makeFuncSkel(m.params));
- events.add(add);
- }
-
- // methods
- var ownMethods = new Gee.ArrayList<Symbol>();
- for(var i =0; i < data.methods.size;i++) {
- var e = data.methods.get(i);
- if (!e.isEvent && e.comment.getTag(DocTagTitle.HIDE) == "") {
- ownMethods.add(e);
- }
- };
- ownMethods.sort((a,b) => {
- return a.name.collate(b.name);
- });
-
- var methods = new JSON.Array();
-
- for(var i =0; i < ownMethods.size;i++) {
- var m = ownMethods.get(i);
- var add = new JSON.Object();
- add.set_string_member("name",m.name.substring(1,m.name.length-1);
- add.set_string_member("type","function");
- add.set_string_member("desc",m.desc);
- add.set_string_member("sig", this.makeMethodSkel(m.params));
- events.add(add);
- }
-
- //println(props.toSource());
- // we need to output:
- //classname => {
- // propname =>
- // type=>
- // desc=>
- // }
- var ret = new JSON.Object();
- ret.set_object_member("props", props);
- ret.set_object_member("events", events);
- ret.set_object_member("methods", methods);
+ /**
+ * JSON files are lookup files for the documentation
+ * - can be used by IDE's or AJAX based doc tools
+ *
+ *
+ */
+ JSON.Object publishJSON (Symbol data)
+ {
+ // what we need to output to be usefull...
+ // a) props..
+ var cfgProperties = new GLib.ArrayList<Symbol>();
+ if (!data.comment.getTag(DocTagTitle.SINGLETON).length) {
+ cfgProperties = data.configToArray();
+ cfgProperties = cfgProperties.sort((a,b) =>{
+ return a.alias.collate(b.alias);
+ });
+
+ }
+
+ var props = new JSON.Array();;
+ //println(cfgProperties.toSource());
+
+ for(var i =0; i < cfgProperties.size;i++) {
+ var p = cfgPropertiesget.get(i);
+ var add = new JSON.Object();
+ add.set_string_member("name",p.name);
+ add.set_string_member("type",p.type);
+ add.set_string_member("desc",p.desc);
+ add.set_string_member("memberOf", p.memberOf == data.alias ? '' : p.memberOf);
+
+ if (p.optvalues.size) {
+ add.set_array_member("desc",p.optvalues_as_json_array());
+ }
+ props.add_object(add );
+ }
+
+ ///// --- events
+ var ownEvents = new Gee.ArrayList<Symbol>();
+ for(var i =0; i < data.methods.size;i++) {
+ var e = data.methods.get(i);
+ if (e.isEvent && e.comment.getTag(DocTagTitle.HIDE) == "") {
+ ownEvents.add(e);
+ }
+ };
+ ownEvents.sort((a,b) => {
+ return a.name.collate(b.name);
+ });
+
+ var events = new JSON.Array();
+
+ for(var i =0; i < ownEvents.size;i++) {
+ var m = ownEvents.get(i);
+ var add = new JSON.Object();
+ add.set_string_member("name",m.name.substring(1,m.name.length-1));
+ add.set_string_member("type","function");
+ add.set_string_member("desc",m.desc);
+ add.set_string_member("sig", this.makeFuncSkel(m.params));
+ events.add(add);
+ }
+
+ // methods
+ var ownMethods = new Gee.ArrayList<Symbol>();
+ for(var i =0; i < data.methods.size;i++) {
+ var e = data.methods.get(i);
+ if (!e.isEvent && e.comment.getTag(DocTagTitle.HIDE) == "") {
+ ownMethods.add(e);
+ }
+ };
+ ownMethods.sort((a,b) => {
+ return a.name.collate(b.name);
+ });
+
+ var methods = new JSON.Array();
+
+ for(var i =0; i < ownMethods.size;i++) {
+ var m = ownMethods.get(i);
+ var add = new JSON.Object();
+ add.set_string_member("name",m.name.substring(1,m.name.length-1));
+ add.set_string_member("type","function");
+ add.set_string_member("desc",m.desc);
+ add.set_string_member("sig", this.makeMethodSkel(m.params));
+ events.add(add);
+ }
+
+ //println(props.toSource());
+ // we need to output:
+ //classname => {
+ // propname =>
+ // type=>
+ // desc=>
+ // }
+ var ret = new JSON.Object();
+ ret.set_object_member("props", props);
+ ret.set_object_member("events", events);
+ ret.set_object_member("methods", methods);
- return ret;
-
-
- // b) methods
- // c) events
-
-
- },
-
- // in Link (js) ???
- string srcFileRelName(string sourceFile)
- {
- return sourceFile.substring(PackerRun.opt_real_basedir.length+1);
- }
- string srcFileFlatName(string sourceFile)
- {
- var name = this.srcFileRelName(sourceFile);
- name = DocBuilder.regex_dotdot.replace(name, name.length, 0, "");
- name = name.replace("/", "_").replace(":", "_") + .".html";
-
- }
-
-
- void makeSrcFile(string sourceFile)
- {
- // this stuff works...
-
-
- var name = this.srcFileFlatName(sourceFile);
-
- GLib.debug("Write Source file : %s/symbols/src/%s", opt_doc_target, name);
- var pretty = PrettyPrint.toPretty(FileUtils.get_contenst(sourceFile));
- File.write(PackerRun.opt_doc_target+"/symbols/src/" + name,
- "<html><head>" +
- "<title>" + sourceFile + "</title>" +
- "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../../css/highlight-js.css\"/>" +
- "</head><body class=\"highlightpage\">" +
- pretty +
- "</body></html>");
- },
- /**
- * used by JSON output to generate a function skeleton
- */
- /*
- string makeFuncSkel(Gee.ArrayList<Symbol> params) {
- if (params.length < 0) {
- return "function ()\n{\n\n}";
+ return ret;
+
+
+ // b) methods
+ // c) events
+
+
+ }
+
+ // in Link (js) ???
+ string srcFileRelName(string sourceFile)
+ {
+ return sourceFile.substring(PackerRun.opt_real_basedir.length+1);
+ }
+ string srcFileFlatName(string sourceFile)
+ {
+ var name = this.srcFileRelName(sourceFile);
+ name = DocBuilder.regex_dotdot.replace(name, name.length, 0, "");
+ name = name.replace("/", "_").replace(":", "_") + ".html";
+
}
- return "function (" +
- params.filter(
- function($) {
- return $.name.indexOf(".") == -1; // don't show config params in signature
- }
- ).map( function($) { return $.name == 'this' ? '_self' : $.name; } ).join(", ") +
- ")\n{\n\n}";
- },
- makeMethodSkel :function(params) {
- if (!params) return "()";
- return "(" +
- params.filter(
- function($) {
- return $.name.indexOf(".") == -1; // don't show config params in signature
- }
- ).map( function($) { return $.type + " " +( $.name == 'this' ? '_self' : $.name ); } ).join(", ") +
- ")";
- }
-
+
+ void makeSrcFile(string sourceFile)
+ {
+ // this stuff works...
+
+
+ var name = this.srcFileFlatName(sourceFile);
+
+ GLib.debug("Write Source file : %s/symbols/src/%s", opt_doc_target, name);
+ var pretty = PrettyPrint.toPretty(FileUtils.get_contenst(sourceFile));
+ File.write(PackerRun.opt_doc_target+"/symbols/src/" + name,
+ "<html><head>" +
+ "<title>" + sourceFile + "</title>" +
+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../../css/highlight-js.css\"/>" +
+ "</head><body class=\"highlightpage\">" +
+ pretty +
+ "</body></html>");
+ }
+ /**
+ * used by JSON output to generate a function skeleton
+ */
+ /*
+ string makeFuncSkel(Gee.ArrayList<Symbol> params) {
+ if (params.length < 0) {
+ return "function ()\n{\n\n}";
+ }
+
+ return "function (" +
+ params.filter(
+ function($) {
+ return $.name.indexOf(".") == -1; // don't show config params in signature
+ }
+ ).map( function($) { return $.name == 'this' ? '_self' : $.name; } ).join(", ") +
+ ")\n{\n\n}";
+ },
+ makeMethodSkel :function(params) {
+ if (!params) return "()";
+ return "(" +
+ params.filter(
+ function($) {
+ return $.name.indexOf(".") == -1; // don't show config params in signature
+ }
+ ).map( function($) { return $.type + " " +( $.name == 'this' ? '_self' : $.name ); } ).join(", ") +
+ ")";
+ }
+
*/
-};
+ }
+}