+ var tr = new TokenReader({ keepComments : true, keepWhite : true });
+ var ts = new TokenStream(txs);
+
+ Parser.parse(ts, srcFile);
+
+ //var outstr = JSON.stringify(
+ // Parser.filesSymbols[srcFile]._index
+ //);
+ //File.write(cacheFile, outstr);
+
+
+ // }
+ }
+
+
+
+ Parser.finish();
+ },
+
+
+
+ publish : function() {
+
+
+ // link!!!
+
+
+
+ if (!File.exists(Options.target))
+ File.mkdir(Options.target);
+ if (!File.exists(Options.target+"/symbols"))
+ File.mkdir(Options.target+"/symbols");
+ if (!File.exists(Options.target+"/symbols/src"))
+ File.mkdir(Options.target+"/symbols/src");
+
+ // copy everything in 'static' into
+ File.list(Options.templatesDir + '/static').forEach(function (f) {
+ File.copy(Options.templatesDir + '/static/' + f, Options.target + '/' + f);
+ });
+ if (!File.isDirectory(Options.target +"/json")) {
+ File.makeDir(Options.target +"/json");
+ }
+
+ // used to check the details of things being linked to
+ Link.symbolSet = symbolSet;
+ Link.base = "../";
+
+ var classTemplate = new Template({
+ templateFile : Options.templatesDir + "/class.tmpl",
+ Link : Link
+ });
+ var classesTemplate = new Template({
+ templateFile : Options.templatesDir +"/allclasses.tmpl",
+ Link : Link
+ });
+ var classesindexTemplate = new Template({
+ templateFile : Options.templatesDir +"/index.tmpl",
+ Link : Link
+ });
+ var fileindexTemplate = new Template({
+ templateFile : Options.templatesDir +"/allfiles.tmpl",
+ Link: Link
+ });
+
+
+ classTemplate.symbolSet = symbolSet;
+
+
+ function hasNoParent($) {
+ return ($.memberOf == "")
+ }
+ function isaFile($) {
+ return ($.is("FILE"))
+ }
+ function isaClass($) {
+ return ($.is("CONSTRUCTOR") || $.isNamespace);
+ }
+
+ var symbols = symbolSet.toArray();
+
+ var files = Options.srcFiles;
+
+ for (var i = 0, l = files.length; i < l; i++) {
+ var file = files[i];
+ var targetDir = Options.target + "/symbols/src/";
+ this.makeSrcFile(file, targetDir);
+ }
+
+ var classes = symbols.filter(isaClass).sort(makeSortby("alias"));
+
+ var classesIndex = classesTemplate.process(classes); // kept in memory
+
+
+
+ for (var i = 0, l = classes.length; i < l; i++) {
+ var symbol = classes[i];
+ var output = "";