*
* compresses files listed as arguments and outputs result
*/
-
+TextStream = imports['JSDOC/TextStream.js'].TextStream;
TokenReader = imports['JSDOC/TokenReader.js'].TokenReader;
ScopeParser = imports['JSDOC/ScopeParser.js'].ScopeParser;
TokenStream = imports['JSDOC/TokenStream.js'].TokenStream;
function pack(str)
{
- var tr = new TokenReader();
- var toks = tr.tokenize(str,false); // dont merge xxx + . + yyyy etc.
- var sp = new ScopeParser(new TokenStream(toks));
+ var tr = new TokenReader( { keepDocs :true, keepWhite : true, keepComments : true, sepIdents : true });
+ var toks = tr.tokenize(new TextStream(str) ); // dont merge xxx + . + yyyy etc.
+ var ts = new TokenStream(toks);
+ // ts.dump();
+ var sp = new ScopeParser(ts);
sp.buildSymbolTree();
sp.mungeSymboltree();
print(sp.warnings.join("\n"));
var args = Array.prototype.slice.call(Seed.argv);
args.shift(); //seed
args.shift(); // pack.js
-var files = [];
-var outfn = '';
-if (!args.length) {
- throw "no files selected";
+var cfg = {
+ files : [],
+ target : false,
}
+
+
for(var i =0; i < args.length;i++) {
if (args[i] == '-o') {
- outfn = args[i+1];
+ cfg.target = args[i+1];
i++;
continue;
}
- files.push(args[i]);
+ cfg.files.push(args[i]);
}
-print(files.join(', '));
-if (!files.length) {
- throw "no files selected";
-}
-var out = '';
-files.forEach(function(f) {
- out = pack(File.read(f)) + "\n";
-});
-if (outfn) {
- File.write(outfn, out);
+var pack;
+try {
+ pack = new Packer(cfg)
+} catch (e) {
+ print("ERROR " + e);
Seed.quit();
}
-print(out);
-
+if (!pack.target) {
+ print(pack.out);
+}