2 //<script type="text/javascript">
4 * Simple packer example
6 * compresses files listed as arguments and outputs result
8 TextStream = imports['JSDOC/TextStream.js'].TextStream;
9 TokenReader = imports['JSDOC/TokenReader.js'].TokenReader;
10 ScopeParser = imports['JSDOC/ScopeParser.js'].ScopeParser;
11 TokenStream = imports['JSDOC/TokenStream.js'].TokenStream;
12 CompressWhite = imports['JSDOC/CompressWhite.js'].CompressWhite;
13 File = imports.File.File;
19 var tr = new TokenReader( { keepDocs :true, keepWhite : true, keepComments : true, sepIdents : true });
20 var toks = tr.tokenize(new TextStream(str) ); // dont merge xxx + . + yyyy etc.
21 var ts = new TokenStream(toks);
23 var sp = new ScopeParser(ts);
26 print(sp.warnings.join("\n"));
27 var out = CompressWhite(sp.ts);
33 var args = Array.prototype.slice.call(Seed.argv);
35 args.shift(); // pack.js
39 print( "no files selected");
42 for(var i =0; i < args.length;i++) {
43 if (args[i] == '-o') {
50 print(files.join(', '));
52 throw "no files selected";
55 files.forEach(function(f) {
56 out += pack(File.read(f)) + "\n";
59 File.write(outfn, out);