sproutcore 0.9.13 → 0.9.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +19 -0
- data/Manifest.txt +103 -26
- data/app_generators/sproutcore/templates/README +1 -1
- data/bin/sc-build +1 -1
- data/bin/sc-gen +0 -0
- data/bin/sc-ide +278 -0
- data/bin/sc-init +38 -0
- data/bin/sc-install +96 -0
- data/bin/sc-remove +94 -0
- data/bin/sc-server +4 -0
- data/bin/sc-update +94 -0
- data/bin/sproutcore +3 -14
- data/clients/sc_docs/controllers/docs.js +1 -1
- data/clients/sc_docs/models/doc.js +6 -0
- data/clients/sc_docs/views/doc_frame.js +1 -1
- data/clients/sc_test_runner/english.lproj/icons/small/next.png +0 -0
- data/clients/sc_test_runner/english.lproj/icons/small/reset.png +0 -0
- data/frameworks/sproutcore/HISTORY +34 -2
- data/frameworks/sproutcore/controllers/array.js +1 -1
- data/frameworks/sproutcore/controllers/controller.js +1 -1
- data/frameworks/sproutcore/controllers/object.js +9 -6
- data/frameworks/sproutcore/core.js +19 -4
- data/frameworks/sproutcore/english.lproj/blank.gif +0 -0
- data/frameworks/sproutcore/english.lproj/core.css +1 -0
- data/frameworks/sproutcore/english.lproj/menu.css +1 -0
- data/frameworks/sproutcore/foundation/application.js +3 -3
- data/frameworks/sproutcore/foundation/benchmark.js +1 -1
- data/frameworks/sproutcore/foundation/node_descriptor.js +13 -1
- data/frameworks/sproutcore/foundation/page.js +3 -2
- data/frameworks/sproutcore/foundation/path_module.js +33 -16
- data/frameworks/sproutcore/foundation/run_loop.js +1 -1
- data/frameworks/sproutcore/foundation/server.js +68 -18
- data/frameworks/sproutcore/foundation/string.js +1 -1
- data/frameworks/sproutcore/globals/window.js +62 -15
- data/frameworks/sproutcore/lib/core_views.rb +1 -0
- data/frameworks/sproutcore/lib/index.rhtml +4 -3
- data/frameworks/sproutcore/lib/menu_views.rb +2 -2
- data/frameworks/sproutcore/models/collection.js +122 -107
- data/frameworks/sproutcore/models/record.js +2 -2
- data/frameworks/sproutcore/panes/manager.js +1 -1
- data/frameworks/sproutcore/panes/overlay.js +3 -3
- data/frameworks/sproutcore/tests/controllers/object.rhtml +26 -0
- data/frameworks/sproutcore/tests/views/collection/incremental_rendering.rhtml +2 -2
- data/frameworks/sproutcore/views/button/disclosure.js +1 -1
- data/frameworks/sproutcore/views/collection/collection.js +19 -15
- data/frameworks/sproutcore/views/collection/source_list.js +1 -1
- data/frameworks/sproutcore/views/collection/table.js +2 -2
- data/frameworks/sproutcore/views/error_explanation.js +1 -1
- data/frameworks/sproutcore/views/field/checkbox_field.js +1 -1
- data/frameworks/sproutcore/views/field/field.js +1 -1
- data/frameworks/sproutcore/views/field/radio_field.js +1 -1
- data/frameworks/sproutcore/views/field/select_field.js +1 -1
- data/frameworks/sproutcore/views/form.js +1 -1
- data/frameworks/sproutcore/views/image.js +1 -1
- data/frameworks/sproutcore/views/menu_item.js +1 -1
- data/frameworks/sproutcore/views/popup_button.js +1 -1
- data/frameworks/sproutcore/views/popup_menu.js +1 -1
- data/frameworks/sproutcore/views/progress.js +4 -2
- data/frameworks/sproutcore/views/radio_group.js +1 -1
- data/frameworks/sproutcore/views/scroll.js +1 -1
- data/frameworks/sproutcore/views/source_list_group.js +1 -1
- data/frameworks/sproutcore/views/split.js +1 -1
- data/frameworks/sproutcore/views/tab.js +3 -1
- data/frameworks/sproutcore/views/view.js +19 -3
- data/jsdoc/README.txt +89 -57
- data/jsdoc/app/frame/Chain.js +102 -0
- data/jsdoc/app/frame/Dumper.js +144 -0
- data/jsdoc/app/frame/Hash.js +47 -0
- data/jsdoc/app/frame/Link.js +142 -0
- data/jsdoc/app/frame/Namespace.js +10 -0
- data/jsdoc/app/frame/Opt.js +134 -0
- data/jsdoc/app/frame/Reflection.js +26 -0
- data/jsdoc/app/frame/String.js +93 -0
- data/jsdoc/app/frame/Testrun.js +129 -0
- data/jsdoc/app/frame.js +33 -0
- data/jsdoc/app/handlers/FOODOC.js +26 -0
- data/jsdoc/app/handlers/XMLDOC/DomReader.js +159 -0
- data/jsdoc/app/handlers/XMLDOC/XMLDoc.js +16 -0
- data/jsdoc/app/handlers/XMLDOC/XMLParse.js +292 -0
- data/jsdoc/app/handlers/XMLDOC.js +26 -0
- data/jsdoc/app/lib/JSDOC/DocComment.js +200 -0
- data/jsdoc/app/lib/JSDOC/DocTag.js +294 -0
- data/jsdoc/app/lib/JSDOC/JsDoc.js +180 -0
- data/jsdoc/app/lib/JSDOC/JsPlate.js +100 -0
- data/jsdoc/app/lib/JSDOC/Lang.js +144 -0
- data/jsdoc/app/lib/JSDOC/Parser.js +109 -0
- data/jsdoc/app/lib/JSDOC/PluginManager.js +33 -0
- data/jsdoc/app/lib/JSDOC/Symbol.js +600 -0
- data/jsdoc/app/lib/JSDOC/SymbolSet.js +220 -0
- data/jsdoc/app/lib/JSDOC/TextStream.js +41 -0
- data/jsdoc/app/lib/JSDOC/Token.js +18 -0
- data/jsdoc/app/lib/JSDOC/TokenReader.js +323 -0
- data/jsdoc/app/lib/JSDOC/TokenStream.js +133 -0
- data/jsdoc/app/lib/JSDOC/Util.js +32 -0
- data/jsdoc/app/lib/JSDOC/Walker.js +416 -0
- data/jsdoc/app/lib/JSDOC.js +97 -0
- data/jsdoc/app/main.js +74 -0
- data/jsdoc/app/plugins/commentSrcJson.js +19 -0
- data/jsdoc/app/plugins/frameworkPrototype.js +16 -0
- data/jsdoc/app/plugins/functionCall.js +10 -0
- data/jsdoc/app/plugins/publishSrcHilite.js +62 -0
- data/jsdoc/app/plugins/sproutcoreTags.js +26 -0
- data/jsdoc/app/plugins/symbolLink.js +9 -0
- data/jsdoc/app/plugins/tagParamConfig.js +31 -0
- data/jsdoc/app/plugins/tagSynonyms.js +43 -0
- data/jsdoc/app/run.js +339 -137
- data/jsdoc/changes.txt +47 -0
- data/jsdoc/conf/sample.conf +31 -0
- data/jsdoc/java/build.xml +36 -0
- data/jsdoc/java/build_1.4.xml +36 -0
- data/jsdoc/java/classes/js.jar +0 -0
- data/jsdoc/java/src/JsDebugRun.java +21 -0
- data/jsdoc/java/src/JsRun.java +21 -0
- data/jsdoc/jsdebug.jar +0 -0
- data/jsdoc/jsrun.jar +0 -0
- data/jsdoc/t/TestDoc.js +144 -0
- data/jsdoc/t/runner.js +13 -0
- data/jsdoc/templates/sproutcore/allclasses.tmpl +17 -0
- data/jsdoc/templates/sproutcore/allfiles.tmpl +56 -0
- data/jsdoc/templates/sproutcore/class.tmpl +408 -326
- data/jsdoc/templates/sproutcore/index.tmpl +30 -31
- data/jsdoc/templates/sproutcore/publish.js +173 -81
- data/jsdoc/templates/sproutcore/static/default.css +191 -0
- data/jsdoc/templates/sproutcore/static/header.html +2 -0
- data/jsdoc/templates/sproutcore/static/index.html +19 -0
- data/jsdoc/templates/sproutcore/symbol.tmpl +35 -0
- data/jsdoc/test/addon.js +24 -0
- data/jsdoc/test/anon_inner.js +14 -0
- data/jsdoc/test/augments.js +31 -0
- data/jsdoc/test/augments2.js +26 -0
- data/jsdoc/test/borrows.js +41 -0
- data/jsdoc/test/borrows2.js +23 -0
- data/jsdoc/test/config.js +22 -0
- data/jsdoc/test/constructs.js +18 -0
- data/jsdoc/test/encoding.js +10 -0
- data/jsdoc/test/encoding_other.js +12 -0
- data/jsdoc/test/functions_anon.js +39 -0
- data/jsdoc/test/functions_nested.js +33 -0
- data/jsdoc/test/global.js +13 -0
- data/jsdoc/test/globals.js +25 -0
- data/jsdoc/test/ignore.js +10 -0
- data/jsdoc/test/inner.js +16 -0
- data/jsdoc/test/jsdoc_test.js +477 -0
- data/jsdoc/test/lend.js +33 -0
- data/jsdoc/test/memberof.js +20 -0
- data/jsdoc/test/memberof_constructor.js +15 -0
- data/jsdoc/test/name.js +19 -0
- data/jsdoc/test/namespace_nested.js +23 -0
- data/jsdoc/test/nocode.js +13 -0
- data/jsdoc/test/oblit_anon.js +20 -0
- data/jsdoc/test/overview.js +20 -0
- data/jsdoc/test/param_inline.js +37 -0
- data/jsdoc/test/params_optional.js +8 -0
- data/jsdoc/test/prototype.js +17 -0
- data/jsdoc/test/prototype_nested.js +9 -0
- data/jsdoc/test/prototype_oblit.js +13 -0
- data/jsdoc/test/prototype_oblit_constructor.js +24 -0
- data/jsdoc/test/public.js +10 -0
- data/jsdoc/test/shared.js +42 -0
- data/jsdoc/test/shared2.js +2 -0
- data/jsdoc/test/shortcuts.js +22 -0
- data/jsdoc/test/static_this.js +13 -0
- data/jsdoc/test/synonyms.js +23 -0
- data/jsdoc/test/tosource.js +23 -0
- data/jsdoc/test/variable_redefine.js +14 -0
- data/jsdoc/test.js +304 -0
- data/lib/sproutcore/build_tools/resource_builder.rb +6 -1
- data/lib/sproutcore/bundle_installer.rb +268 -0
- data/lib/sproutcore/jsdoc.rb +7 -6
- data/lib/sproutcore/library.rb +38 -0
- data/lib/sproutcore/merb/bundle_controller.rb +8 -4
- data/lib/sproutcore/version.rb +1 -1
- data/lib/sproutcore.rb +1 -1
- data/script/destroy +0 -0
- data/script/generate +0 -0
- data/script/txt2html +0 -0
- metadata +117 -29
- data/clients/view_builder/core.js +0 -19
- data/clients/view_builder/english.lproj/body.css +0 -149
- data/clients/view_builder/english.lproj/body.rhtml +0 -18
- data/clients/view_builder/english.lproj/strings.js +0 -14
- data/clients/view_builder/main.js +0 -37
- data/jsdoc/app/DocFile.js +0 -137
- data/jsdoc/app/DocTag.js +0 -110
- data/jsdoc/app/Doclet.js +0 -63
- data/jsdoc/app/Dumper.js +0 -143
- data/jsdoc/app/JsDoc.js +0 -103
- data/jsdoc/app/JsHilite.js +0 -45
- data/jsdoc/app/JsIO.js +0 -163
- data/jsdoc/app/JsParse.js +0 -385
- data/jsdoc/app/JsPlate.js +0 -130
- data/jsdoc/app/JsTestrun.js +0 -129
- data/jsdoc/app/JsToke.js +0 -564
- data/jsdoc/app/Symbol.js +0 -298
- data/jsdoc/app/Transformer.js +0 -14
- data/jsdoc/app/Util.js +0 -97
- data/jsdoc/app/js.jar +0 -0
- data/jsdoc/plugins/min.js +0 -316
- data/jsdoc/plugins/strip.js +0 -20
- data/jsdoc/templates/sproutcore/default.css +0 -191
- data/jsdoc/templates/sproutcore/index.html +0 -13
- data/jsdoc/templates/sproutcore/prototype.js +0 -4186
- data/jsdoc/templates/sproutcore/splash.html +0 -7
data/jsdoc/app/JsDoc.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileOverview
|
|
3
|
-
* @name JsDoc Toolkit
|
|
4
|
-
* @author Michael Mathews micmath@gmail.com
|
|
5
|
-
* @url $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-1.4.0b/app/JsDoc.js $
|
|
6
|
-
* @revision $Id: JsDoc.js 327 2007-11-13 00:18:23Z micmath $
|
|
7
|
-
* @license <a href="http://en.wikipedia.org/wiki/MIT_License">X11/MIT License</a>
|
|
8
|
-
* (See the accompanying README file for full details.)
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/** @class Handle reporting messages to the user.
|
|
12
|
-
@static
|
|
13
|
-
*/
|
|
14
|
-
LOG = {
|
|
15
|
-
warn: function(msg, e) {
|
|
16
|
-
if (e) msg = e.fileName+", line "+e.lineNumber+": "+msg;
|
|
17
|
-
|
|
18
|
-
msg = ">> WARNING: "+msg;
|
|
19
|
-
LOG.warnings.push(msg);
|
|
20
|
-
if (LOG.out) LOG.out.write(msg+"\n");
|
|
21
|
-
else print(msg);
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
inform: function(msg) {
|
|
25
|
-
msg = " > "+msg;
|
|
26
|
-
if (LOG.out) LOG.out.write(msg+"\n");
|
|
27
|
-
else if (typeof VERBOSE != "undefined" && VERBOSE) print(msg);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
LOG.warnings = [];
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
@class An automated documentation publishing system for JavaScript.
|
|
34
|
-
@static
|
|
35
|
-
@author Michael Mathews <a href="mailto:micmath@gmail.com">micmath@gmail.com</a>
|
|
36
|
-
*/
|
|
37
|
-
JsDoc = {
|
|
38
|
-
/** The version number of this release. */
|
|
39
|
-
VERSION: "1.4.0b",
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Print out the expected usage syntax for this script on the command
|
|
43
|
-
* line. This is called automatically by using the -h/--help option.
|
|
44
|
-
*/
|
|
45
|
-
usage: function() {
|
|
46
|
-
print("USAGE: java -jar app/js.jar app/jsdoc.js [OPTIONS] <SRC_DIR> <SRC_FILE> ...");
|
|
47
|
-
print("");
|
|
48
|
-
print("OPTIONS:");
|
|
49
|
-
print(" -t=<PATH> or --template=<PATH>\n Required. Use this template to format the output.\n");
|
|
50
|
-
print(" -d=<PATH> or --directory=<PATH>\n Output to this directory (defaults to js_docs_out).\n");
|
|
51
|
-
print(" -e=<ENCODING> or --encoding=<ENCODING>\n Use this encoding to read and write files.\n");
|
|
52
|
-
|
|
53
|
-
print(" -r=<DEPTH> or --recurse=<DEPTH>\n Descend into src directories.\n");
|
|
54
|
-
print(" -x=<EXT>[,EXT]... or --ext=<EXT>[,EXT]...\n Scan source files with the given extension/s (defaults to js).\n");
|
|
55
|
-
print(" -a or --allfunctions\n Include all functions, even undocumented ones.\n");
|
|
56
|
-
print(" -A or --Allfunctions\n Include all functions, even undocumented, underscored ones.\n");
|
|
57
|
-
print(" -p or --private\n Include symbols tagged as private.\n");
|
|
58
|
-
print(" -o=<PATH> or --out=<PATH>\n Print log messages to a file (defaults to stdout).\n");
|
|
59
|
-
print(" -h or --help\n Show this message and exit.\n");
|
|
60
|
-
|
|
61
|
-
java.lang.System.exit(0);
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @param {string[]} srcFiles Paths to files to be documented
|
|
66
|
-
* @return {DocFile[]}
|
|
67
|
-
*/
|
|
68
|
-
parse: function(srcFiles) {
|
|
69
|
-
var files = [];
|
|
70
|
-
|
|
71
|
-
if (typeof srcFiles == "string") srcFiles = [srcFiles];
|
|
72
|
-
var parser = new JsParse();
|
|
73
|
-
|
|
74
|
-
srcFiles = srcFiles.sort();
|
|
75
|
-
|
|
76
|
-
var docs = new DocFileGroup();
|
|
77
|
-
|
|
78
|
-
// handle setting up relationships between symbols here
|
|
79
|
-
for (var f = 0; f < srcFiles.length; f++) {
|
|
80
|
-
var srcFile = srcFiles[f];
|
|
81
|
-
|
|
82
|
-
LOG.inform("Tokenizing: file "+(f+1)+", "+srcFile);
|
|
83
|
-
var src = IO.readFile(srcFile);
|
|
84
|
-
|
|
85
|
-
var tokens = new TokenReader(src).tokenize();
|
|
86
|
-
LOG.inform("\t"+tokens.length+" tokens found.");
|
|
87
|
-
var ts = new TokenStream(tokens);
|
|
88
|
-
|
|
89
|
-
var file = new DocFile(srcFile);
|
|
90
|
-
parser.parse(ts);
|
|
91
|
-
LOG.inform("\t"+parser.symbols.length+" symbols found.");
|
|
92
|
-
|
|
93
|
-
file.addSymbols(parser.symbols, JsDoc.opt);
|
|
94
|
-
if (parser.overview) file.overview = parser.overview;
|
|
95
|
-
|
|
96
|
-
docs.addDocFile(file);
|
|
97
|
-
}
|
|
98
|
-
return docs;
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
/** Override this dummy function in your template. */
|
|
103
|
-
function publish() {}
|
data/jsdoc/app/JsHilite.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileOverview
|
|
3
|
-
* @name JsHilite
|
|
4
|
-
* @author Michael Mathews micmath@gmail.com
|
|
5
|
-
* @url $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-1.4.0b/app/JsHilite.js $
|
|
6
|
-
* @revision $Id: JsHilite.js 300 2007-11-11 16:51:53Z micmath $
|
|
7
|
-
* @license <a href="http://en.wikipedia.org/wiki/MIT_License">X11/MIT License</a>
|
|
8
|
-
* (See the accompanying README file for full details.)
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
require("app/JsToke.js");
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @class Turn source code into HTML with tokens marked for hilighting with CSS.
|
|
15
|
-
*/
|
|
16
|
-
function JsHilite(sourceCode, charset) {
|
|
17
|
-
this.tokenizer = new TokenReader(sourceCode);
|
|
18
|
-
this.tokenizer.keepComments = true;
|
|
19
|
-
this.tokenizer.keepDocs = true;
|
|
20
|
-
this.tokenizer.keepWhite = true;
|
|
21
|
-
Token.prototype.toString = function() {
|
|
22
|
-
return "<span class=\""+this.type+"\">"+this.data.replace(/</g, "<")+"</span>";
|
|
23
|
-
}
|
|
24
|
-
if (!charset) charset = "utf-8";
|
|
25
|
-
|
|
26
|
-
this.header = '<html><head><meta http-equiv="content-type" content="text/html; charset='+charset+'"> '+
|
|
27
|
-
"<style>\n\
|
|
28
|
-
.KEYW {color: #933;}\n\
|
|
29
|
-
.COMM {color: #bbb; font-style: italic;}\n\
|
|
30
|
-
.NUMB {color: #393;}\n\
|
|
31
|
-
.STRN {color: #393;}\n\
|
|
32
|
-
.REGX {color: #339;}\n\
|
|
33
|
-
.linenumber {border-right: 1px dotted #666; color: #666; font-style: normal;}\n\
|
|
34
|
-
</style></head><body><pre>";
|
|
35
|
-
this.footer = "</pre></body></html>";
|
|
36
|
-
this.showLinenumbers = true;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
JsHilite.prototype.hilite = function() {
|
|
40
|
-
var hilited = this.tokenizer.tokenize().join("");
|
|
41
|
-
var linenumber = 1;
|
|
42
|
-
if (this.showLinenumbers) hilited = hilited.replace(/(^|\n)/g, function(m){return m+"<span class='linenumber'>"+((linenumber<10)? " ":"")+((linenumber<100)? " ":"")+(linenumber++)+"</span> "});
|
|
43
|
-
|
|
44
|
-
return this.header+hilited+this.footer;
|
|
45
|
-
}
|
data/jsdoc/app/JsIO.js
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileOverview
|
|
3
|
-
* @name JsIO
|
|
4
|
-
* @author Michael Mathews micmath@gmail.com
|
|
5
|
-
* @url $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-1.4.0b/app/JsIO.js $
|
|
6
|
-
* @revision $Id: JsIO.js 303 2007-11-11 18:59:08Z micmath $
|
|
7
|
-
* @license <a href="http://en.wikipedia.org/wiki/MIT_License">X11/MIT License</a>
|
|
8
|
-
* (See the accompanying README file for full details.)
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
// shortcuts
|
|
12
|
-
FileWriter = Packages.java.io.FileWriter;
|
|
13
|
-
File = Packages.java.io.File;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @class Friendly interface to Java file operations. Requires Rhino.
|
|
17
|
-
* @static
|
|
18
|
-
*/
|
|
19
|
-
var IO = {
|
|
20
|
-
FileSeparator: Packages.java.io.File.separator,
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Use to save content to a file.
|
|
24
|
-
* @param {string} outDir Path to directory to save into.
|
|
25
|
-
* @param {string} fileName Name to use for the new file.
|
|
26
|
-
* @param {string} content To write to the new file.
|
|
27
|
-
*/
|
|
28
|
-
saveFile: function(outDir, fileName, content) {
|
|
29
|
-
var out = new Packages.java.io.PrintWriter(
|
|
30
|
-
new Packages.java.io.OutputStreamWriter(
|
|
31
|
-
new Packages.java.io.FileOutputStream(outDir+IO.FileSeparator+fileName),
|
|
32
|
-
IO.encoding
|
|
33
|
-
)
|
|
34
|
-
);
|
|
35
|
-
out.write(content);
|
|
36
|
-
out.flush();
|
|
37
|
-
out.close();
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Gets the contents of a file.
|
|
42
|
-
* @param {path|url} url
|
|
43
|
-
* @return {string} The contents of the file at the given location.
|
|
44
|
-
*/
|
|
45
|
-
readFile: function(path) {
|
|
46
|
-
return readFile(path, IO.encoding);
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Use to copy a file from one directory to another. Can take binary files too.
|
|
51
|
-
* @param {string} inFile Path to the source file.
|
|
52
|
-
* @param {string} outDir Path to directory to save into.
|
|
53
|
-
* @param {string} fileName Name to use for the new file.
|
|
54
|
-
*/
|
|
55
|
-
copyFile: function(inFile, outDir, fileName) {
|
|
56
|
-
if (fileName == null) fileName = Util.fileName(inFile);
|
|
57
|
-
|
|
58
|
-
var inFile = new File(inFile);
|
|
59
|
-
var outFile = new File(outDir+IO.FileSeparator+fileName);
|
|
60
|
-
|
|
61
|
-
var bis = new Packages.java.io.BufferedInputStream(new Packages.java.io.FileInputStream(inFile), 4096);
|
|
62
|
-
var bos = new Packages.java.io.BufferedOutputStream(new Packages.java.io.FileOutputStream(outFile), 4096);
|
|
63
|
-
var theChar;
|
|
64
|
-
while ((theChar = bis.read()) != -1) {
|
|
65
|
-
bos.write(theChar);
|
|
66
|
-
}
|
|
67
|
-
bos.close();
|
|
68
|
-
bis.close();
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Use to create a new directory.
|
|
73
|
-
* @param {string} dirname Path of directory you wish to create.
|
|
74
|
-
*/
|
|
75
|
-
makeDir: function(dirName) {
|
|
76
|
-
(new File(dirName)).mkdir();
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Get recursive list of files in a directory.
|
|
81
|
-
* @param {array} dirs Paths to directories to search.
|
|
82
|
-
* @param {int} recurse How many levels to descend, defaults to 1.
|
|
83
|
-
* @return {array} Paths to found files.
|
|
84
|
-
*/
|
|
85
|
-
ls: function(dir, recurse, allFiles, path) {
|
|
86
|
-
if (path === undefined) { // initially
|
|
87
|
-
var allFiles = [];
|
|
88
|
-
var path = [dir];
|
|
89
|
-
}
|
|
90
|
-
if (path.length == 0) return allFiles;
|
|
91
|
-
if (recurse === undefined) recurse = 1;
|
|
92
|
-
|
|
93
|
-
dir = new File(dir);
|
|
94
|
-
if (!dir.directory) return [String(dir)];
|
|
95
|
-
var files = dir.list();
|
|
96
|
-
|
|
97
|
-
for (var f = 0; f < files.length; f++) {
|
|
98
|
-
var file = String(files[f]);
|
|
99
|
-
if (file.match(/^\.[^\.\/\\]/)) continue; // skip dot files
|
|
100
|
-
|
|
101
|
-
if ((new File(path.join("/")+"/"+file)).list()) { // it's a directory
|
|
102
|
-
path.push(file);
|
|
103
|
-
if (path.length-1 < recurse) IO.ls(path.join("/"), recurse, allFiles, path);
|
|
104
|
-
path.pop();
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
allFiles.push((path.join("/")+"/"+file).replace("//", "/"));
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
return allFiles;
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Check if a filepath exists.
|
|
116
|
-
* @author vinces1979
|
|
117
|
-
*/
|
|
118
|
-
exists: function(path) {
|
|
119
|
-
file = new File(path);
|
|
120
|
-
|
|
121
|
-
if (file.isDirectory()){
|
|
122
|
-
return true;
|
|
123
|
-
}
|
|
124
|
-
if (!file.exists()){
|
|
125
|
-
LOG.inform('Path not found: ' + path);
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
if (!file.canRead()){
|
|
129
|
-
LOG.inform('Path not readable: ' + path);
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
return true;
|
|
133
|
-
},
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Create an open filehandle.
|
|
137
|
-
* @param {string} path Path to file to open.
|
|
138
|
-
* @param {boolean} append Open in append mode?
|
|
139
|
-
* @return {FileWriter} A filehandle that can write(string) and close().
|
|
140
|
-
*/
|
|
141
|
-
open: function(path, append) {
|
|
142
|
-
var append = true;
|
|
143
|
-
var outFile = new Packages.java.io.File(path);
|
|
144
|
-
var out = new Packages.java.io.PrintWriter(
|
|
145
|
-
new Packages.java.io.OutputStreamWriter(
|
|
146
|
-
new Packages.java.io.FileOutputStream(outFile, append),
|
|
147
|
-
IO.encoding
|
|
148
|
-
)
|
|
149
|
-
);
|
|
150
|
-
return out;
|
|
151
|
-
},
|
|
152
|
-
|
|
153
|
-
setEncoding: function(encoding) {
|
|
154
|
-
if (/ISO-8859-([0-9]+)/i.test(encoding)) {
|
|
155
|
-
IO.encoding = "ISO8859_"+RegExp.$1;
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
IO.encoding = encoding
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
IO.encoding = "utf-8";
|
data/jsdoc/app/JsParse.js
DELETED
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileOverview
|
|
3
|
-
* @name JsParse
|
|
4
|
-
* @author Michael Mathews micmath@gmail.com
|
|
5
|
-
* @url $HeadURL: https://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-1.4.0b/app/JsParse.js $
|
|
6
|
-
* @revision $Id: JsParse.js 329 2007-11-13 00:48:15Z micmath $
|
|
7
|
-
* @license <a href="http://en.wikipedia.org/wiki/MIT_License">X11/MIT License</a>
|
|
8
|
-
* (See the accompanying README file for full details.)
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @class Find objects in tokenized JavaScript source code.
|
|
13
|
-
* @constructor
|
|
14
|
-
* @author Michael Mathews <a href="mailto:micmath@gmail.com">micmath@gmail.com</a>
|
|
15
|
-
*/
|
|
16
|
-
function JsParse() {};
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Populate the symbols array with symbols found in the
|
|
20
|
-
* given token stream.
|
|
21
|
-
* @param {TokenStream} tokenStream
|
|
22
|
-
*/
|
|
23
|
-
JsParse.prototype.parse = function(tokenStream) {
|
|
24
|
-
/**
|
|
25
|
-
* All symbols found in the tokenStream.
|
|
26
|
-
* @type Symbol[]
|
|
27
|
-
*/
|
|
28
|
-
this.symbols = [];
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Overview found in the tokenStream.
|
|
32
|
-
* @type Symbol
|
|
33
|
-
*/
|
|
34
|
-
this.overview = null;
|
|
35
|
-
|
|
36
|
-
while(tokenStream.next()) {
|
|
37
|
-
if (this._findDocComment(tokenStream)) continue;
|
|
38
|
-
if (this._findFunction(tokenStream)) continue;
|
|
39
|
-
if (this._findVariable(tokenStream)) continue;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Try to find a JsDoc comment in the tokenStream.
|
|
45
|
-
* @param {TokenStream} ts
|
|
46
|
-
* @return {boolean} Was a JsDoc comment found?
|
|
47
|
-
*/
|
|
48
|
-
JsParse.prototype._findDocComment = function(ts) {
|
|
49
|
-
if (ts.look().is("JSDOC")) {
|
|
50
|
-
|
|
51
|
-
ts.look().data = ts.look().data.replace(/@namespace\b/, "@static\n@class");
|
|
52
|
-
|
|
53
|
-
var doc = ts.look().data;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (doc.indexOf("/**#") == 0) {
|
|
57
|
-
new Symbol("", [], "META", doc);
|
|
58
|
-
delete ts.tokens[ts.cursor];
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
else if (/@(projectdescription|(file)?overview)\b/i.test(doc)) {
|
|
62
|
-
this.overview = new Symbol("", [], "FILE", doc);
|
|
63
|
-
delete ts.tokens[ts.cursor];
|
|
64
|
-
return true;
|
|
65
|
-
}
|
|
66
|
-
else if (/@name\s+([a-z0-9_$.]+)\s*/i.test(doc)) {
|
|
67
|
-
this.symbols.push(new Symbol(RegExp.$1, [], SYM.VIRTUAL, doc));
|
|
68
|
-
delete ts.tokens[ts.cursor];
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
else if (/@scope\s+([a-z0-9_$.]+)\s*/i.test(doc)) {
|
|
72
|
-
var scope = RegExp.$1;
|
|
73
|
-
if (scope) {
|
|
74
|
-
scope = scope.replace(/\.prototype\b/, "/");
|
|
75
|
-
this._onObLiteral(scope, new TokenStream(ts.balance("LEFT_CURLY")));
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Try to find a function definition in the tokenStream
|
|
85
|
-
* @param {TokenStream} ts
|
|
86
|
-
* @return {boolean} Was a function definition found?
|
|
87
|
-
*/
|
|
88
|
-
JsParse.prototype._findFunction = function(ts) {
|
|
89
|
-
if (ts.look().is("NAME")) {
|
|
90
|
-
var name = ts.look().data;
|
|
91
|
-
var doc = "";
|
|
92
|
-
var isa = null;
|
|
93
|
-
var body = "";
|
|
94
|
-
var paramTokens = [];
|
|
95
|
-
var params = [];
|
|
96
|
-
|
|
97
|
-
// like function foo()
|
|
98
|
-
if (ts.look(-1).is("FUNCTION")) {
|
|
99
|
-
isa = SYM.FUNCTION;
|
|
100
|
-
|
|
101
|
-
if (ts.look(-2).is("JSDOC")) {
|
|
102
|
-
doc = ts.look(-2).data;
|
|
103
|
-
}
|
|
104
|
-
paramTokens = ts.balance("LEFT_PAREN");
|
|
105
|
-
body = ts.balance("LEFT_CURLY");
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// like var foo = function()
|
|
109
|
-
else if (ts.look(1).is("ASSIGN") && ts.look(2).is("FUNCTION")) {
|
|
110
|
-
isa = SYM.FUNCTION;
|
|
111
|
-
|
|
112
|
-
if (ts.look(-1).is("VAR") && ts.look(-2).is("JSDOC")) {
|
|
113
|
-
doc = ts.look(-2).data;
|
|
114
|
-
}
|
|
115
|
-
else if (ts.look(-1).is("JSDOC")) {
|
|
116
|
-
doc = ts.look(-1).data;
|
|
117
|
-
}
|
|
118
|
-
paramTokens = ts.balance("LEFT_PAREN");
|
|
119
|
-
body = ts.balance("LEFT_CURLY");
|
|
120
|
-
|
|
121
|
-
// like foo = function(n) {return n}(42)
|
|
122
|
-
if (ts.look(1).is("LEFT_PAREN")) {
|
|
123
|
-
isa = SYM.OBJECT;
|
|
124
|
-
|
|
125
|
-
ts.balance("LEFT_PAREN");
|
|
126
|
-
if (doc) { // we only keep these if they're documented
|
|
127
|
-
name = name.replace(/\.prototype\.?/, "/");
|
|
128
|
-
|
|
129
|
-
if (!/\/$/.test(name)) { // assigning to prototype of already existing symbol
|
|
130
|
-
this.symbols.push(new Symbol(name, [], isa, doc));
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
this._onFnBody(name, new TokenStream(body));
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// like var foo = new function()
|
|
139
|
-
else if (ts.look(1).is("ASSIGN") && ts.look(2).is("NEW") && ts.look(3).is("FUNCTION")) {
|
|
140
|
-
isa = SYM.OBJECT;
|
|
141
|
-
|
|
142
|
-
if (ts.look(-1).is("VAR") && ts.look(-2).is("JSDOC")) {
|
|
143
|
-
doc = ts.look(-2).data;
|
|
144
|
-
}
|
|
145
|
-
else if (ts.look(-1).is("JSDOC")) {
|
|
146
|
-
doc = ts.look(-1).data;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
paramTokens = ts.balance("LEFT_PAREN");
|
|
150
|
-
body = ts.balance("LEFT_CURLY");
|
|
151
|
-
if (doc) { // we only keep these if they're documented
|
|
152
|
-
name = name.replace(/\.prototype\.?/, "/");
|
|
153
|
-
|
|
154
|
-
if (!/\/$/.test(name)) { // assigning to prototype of already existing symbol
|
|
155
|
-
this.symbols.push(new Symbol(name, [], isa, doc));
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
this._onFnBody(name, new TokenStream(body));
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
if (isa && name) {
|
|
163
|
-
if (isa == SYM.FUNCTION) {
|
|
164
|
-
for (var i = 0; i < paramTokens.length; i++) {
|
|
165
|
-
if (paramTokens[i].is("NAME"))
|
|
166
|
-
params.push(paramTokens[i].data);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// like Foo.bar.prototype.baz = function() {}
|
|
171
|
-
var ns = name;
|
|
172
|
-
if (name.indexOf(".prototype") > 0) {
|
|
173
|
-
isa = SYM.FUNCTION;
|
|
174
|
-
name = name.replace(/\.prototype\.?/, "/");
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
this.symbols.push(new Symbol(name, params, isa, doc));
|
|
178
|
-
|
|
179
|
-
if (body) {
|
|
180
|
-
if (ns.indexOf(".prototype") > 0) {
|
|
181
|
-
if (/@constructor\b/.test(doc)) {
|
|
182
|
-
ns = ns.replace(/\.prototype\.?/, "/");
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
ns = ns.replace(/\.prototype\.[^.]+$/, "/");
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
this._onFnBody(ns, new TokenStream(body));
|
|
189
|
-
}
|
|
190
|
-
return true;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Try to find a variable definition in the tokenStream
|
|
198
|
-
* @param {TokenStream} ts
|
|
199
|
-
* @return {boolean} Was a variable definition found?
|
|
200
|
-
*/
|
|
201
|
-
JsParse.prototype._findVariable = function(ts) {
|
|
202
|
-
if (ts.look().is("NAME") && ts.look(1).is("ASSIGN")) {
|
|
203
|
-
// like var foo = 1
|
|
204
|
-
var name = ts.look().data;
|
|
205
|
-
isa = SYM.OBJECT;
|
|
206
|
-
|
|
207
|
-
var doc;
|
|
208
|
-
if (ts.look(-1).is("JSDOC")) doc = ts.look(-1).data;
|
|
209
|
-
else if (ts.look(-1).is("VAR") && ts.look(-2).is("JSDOC")) doc = ts.look(-2).data;
|
|
210
|
-
name = name.replace(/\.prototype\.?/, "/");
|
|
211
|
-
|
|
212
|
-
if (doc) { // we only keep these if they're documented
|
|
213
|
-
if (!/\/$/.test(name)) { // assigning to prototype of already existing symbol
|
|
214
|
-
this.symbols.push(new Symbol(name, [], isa, doc));
|
|
215
|
-
}
|
|
216
|
-
if (/@class\b/i.test(doc)) {
|
|
217
|
-
name = name +"/";
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// like foo = {
|
|
222
|
-
if (ts.look(2).is("LEFT_CURLY")) {
|
|
223
|
-
this._onObLiteral(name, new TokenStream(ts.balance("LEFT_CURLY")));
|
|
224
|
-
}
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
return false;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Handle sub-parsing of the content within an object literal.
|
|
232
|
-
* @private
|
|
233
|
-
* @param {String} nspace The name attached to this object.
|
|
234
|
-
* @param {TokenStream} ts The content of the object literal.
|
|
235
|
-
*/
|
|
236
|
-
JsParse.prototype._onObLiteral = function(nspace, ts) {
|
|
237
|
-
while (ts.next()) {
|
|
238
|
-
if (this._findDocComment(ts)) {
|
|
239
|
-
|
|
240
|
-
}
|
|
241
|
-
else if (ts.look().is("NAME") && ts.look(1).is("COLON")) {
|
|
242
|
-
var name = nspace+((nspace.charAt(nspace.length-1)=="/")?"":".")+ts.look().data;
|
|
243
|
-
|
|
244
|
-
// like foo: function
|
|
245
|
-
if (ts.look(2).is("FUNCTION")) {
|
|
246
|
-
var isa = SYM.FUNCTION;
|
|
247
|
-
var doc = "";
|
|
248
|
-
|
|
249
|
-
if (ts.look(-1).is("JSDOC")) doc = ts.look(-1).data;
|
|
250
|
-
|
|
251
|
-
var paramTokens = ts.balance("LEFT_PAREN");
|
|
252
|
-
var params = [];
|
|
253
|
-
for (var i = 0; i < paramTokens.length; i++) {
|
|
254
|
-
if (paramTokens[i].is("NAME"))
|
|
255
|
-
params.push(paramTokens[i].data);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
var body = ts.balance("LEFT_CURLY");
|
|
259
|
-
|
|
260
|
-
// like foo: function(n) {return n}(42)
|
|
261
|
-
if (ts.look(1).is("LEFT_PAREN")) {
|
|
262
|
-
isa = SYM.OBJECT;
|
|
263
|
-
|
|
264
|
-
ts.balance("LEFT_PAREN");
|
|
265
|
-
//if (doc) { // we only keep these if they're documented
|
|
266
|
-
//name = name.replace(/\.prototype\.?/, "/");
|
|
267
|
-
|
|
268
|
-
//if (!/\/$/.test(name)) { // assigning to prototype of already existing symbol
|
|
269
|
-
// this.symbols.push(new Symbol(name, [], isa, doc));
|
|
270
|
-
//}
|
|
271
|
-
//}
|
|
272
|
-
//this._onFnBody(name, new TokenStream(body));
|
|
273
|
-
//return true;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
this.symbols.push(new Symbol(name, params, isa, doc));
|
|
277
|
-
|
|
278
|
-
// find methods in the body of this function
|
|
279
|
-
this._onFnBody(name, new TokenStream(body));
|
|
280
|
-
}
|
|
281
|
-
// like foo: {...}
|
|
282
|
-
else if (ts.look(2).is("LEFT_CURLY")) { // another nested object literal
|
|
283
|
-
if (ts.look(-1).is("JSDOC")) {
|
|
284
|
-
var isa = SYM.OBJECT;
|
|
285
|
-
var doc = ts.look(-1).data;
|
|
286
|
-
|
|
287
|
-
this.symbols.push(new Symbol(name, [], isa, doc));
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
this._onObLiteral(name, new TokenStream(ts.balance("LEFT_CURLY"))); // recursive
|
|
291
|
-
}
|
|
292
|
-
else { // like foo: 1, or foo: "one"
|
|
293
|
-
if (ts.look(-1).is("JSDOC")) { // we only grab these if they are documented
|
|
294
|
-
var isa = SYM.OBJECT;
|
|
295
|
-
var doc = ts.look(-1).data;
|
|
296
|
-
|
|
297
|
-
this.symbols.push(new Symbol(name, [], isa, doc));
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
while (!ts.look().is("COMMA")) { // skip to end of RH value ignoring things like bar({blah, blah})
|
|
301
|
-
if (ts.look().is("LEFT_PAREN")) ts.balance("LEFT_PAREN");
|
|
302
|
-
else if (ts.look().is("LEFT_CURLY")) ts.balance("LEFT_CURLY");
|
|
303
|
-
else if (!ts.next()) break;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Handle sub-parsing of the content within a function body.
|
|
312
|
-
* @private
|
|
313
|
-
* @param {String} nspace The name attached to this function.
|
|
314
|
-
* @param {TokenStream} fs The content of the function body.
|
|
315
|
-
*/
|
|
316
|
-
JsParse.prototype._onFnBody = function(nspace, fs) {
|
|
317
|
-
while (fs.look()) {
|
|
318
|
-
if (this._findDocComment(fs)) {
|
|
319
|
-
|
|
320
|
-
}
|
|
321
|
-
else if (fs.look().is("NAME") && fs.look(1).is("ASSIGN")) {
|
|
322
|
-
var name = fs.look().data;
|
|
323
|
-
|
|
324
|
-
// like this.foo =
|
|
325
|
-
if (name.indexOf("this.") == 0) {
|
|
326
|
-
// like this.foo = function
|
|
327
|
-
if (fs.look(2).is("FUNCTION")) {
|
|
328
|
-
var isa = SYM.FUNCTION;
|
|
329
|
-
var doc = (fs.look(-1).is("JSDOC"))? fs.look(-1).data : "";
|
|
330
|
-
name = name.replace(/^this\./, (nspace+"/").replace("//", "/"))
|
|
331
|
-
|
|
332
|
-
var paramTokens = fs.balance("LEFT_PAREN");
|
|
333
|
-
var params = [];
|
|
334
|
-
for (var i = 0; i < paramTokens.length; i++) {
|
|
335
|
-
if (paramTokens[i].is("NAME")) params.push(paramTokens[i].data);
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
body = fs.balance("LEFT_CURLY");
|
|
339
|
-
|
|
340
|
-
// like this.foo = function(n) {return n}(42)
|
|
341
|
-
if (fs.look(1).is("LEFT_PAREN")) { // false alarm, it's not really a named function definition
|
|
342
|
-
isa = SYM.OBJECT;
|
|
343
|
-
fs.balance("LEFT_PAREN");
|
|
344
|
-
if (doc) { // we only grab these if they are documented
|
|
345
|
-
this.symbols.push(
|
|
346
|
-
new Symbol(name, [], isa, doc)
|
|
347
|
-
);
|
|
348
|
-
}
|
|
349
|
-
break;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
this.symbols.push(
|
|
353
|
-
new Symbol(name, params, isa, doc)
|
|
354
|
-
);
|
|
355
|
-
|
|
356
|
-
if (body) {
|
|
357
|
-
this._onFnBody(name, new TokenStream(body)); // recursive
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
else {
|
|
361
|
-
var isa = SYM.OBJECT;
|
|
362
|
-
var doc = (fs.look(-1).is("JSDOC"))? fs.look(-1).data : "";
|
|
363
|
-
name = name.replace(/^this\./, (nspace+"/").replace("//", "/"))
|
|
364
|
-
|
|
365
|
-
if (doc) {
|
|
366
|
-
this.symbols.push(
|
|
367
|
-
new Symbol(name, [], isa, doc)
|
|
368
|
-
);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
// like this.foo = { ... }
|
|
372
|
-
if (fs.look(2).is("LEFT_CURLY")) {
|
|
373
|
-
var literal = fs.balance("LEFT_CURLY");
|
|
374
|
-
this._onObLiteral(name, new TokenStream(literal));
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
// like <thisfunction>.prototype.foo =
|
|
379
|
-
else if (name.indexOf(nspace+".prototype.") == 0) {
|
|
380
|
-
this._findFunction(fs);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
if (!fs.next()) break;
|
|
384
|
-
}
|
|
385
|
-
}
|