2 // <script type="text/javascript">
5 TokenReader = imports.TokenReader.TokenReader;
6 ScopeParser= imports.ScopeParser.ScopeParser;
7 Collapse = imports.Collapse.Collapse;
8 TextStream = imports.TextStream.TextStream;
11 * @scope JSDOC.PrettyPrint
13 * escape HTML, very basically
15 function escapeHTML(str) {
16 return str.replace(/&/g,'&').
19 replace(/"/g,'"');
24 * make a pretty HTML file out of a JS file, using the tokenizer.
26 function toPretty(str)
29 var txs = new TextStream(str);
30 var tr = new TokenReader({ keepComments : true, keepWhite : true });
31 var toks = tr.tokenize(txs)
33 //var sp = new ScopeParser(new Collapse(toks));
34 //sp.buildSymbolTree();
37 // sp.mungeSymboltree();
39 //r += sp.warnings.join("<BR>");
45 var cs = ''; // current style..
49 if (tok.is("WHIT") || tok.is("COMM") ) {
50 if (tok.data.indexOf("/") > -1) {
53 return cs; // keep the same..
58 // other 'vary things??
59 if (tok.is('NAME') || tok.data == '.' || tok.name == 'THIS') {
62 if (/^[a-z]+/i.test(tok.data)) {
67 // loop through and print it...?
70 for (var i = 0;i < toks.length; i++) {
71 var ns = toStyle(toks[i]);
74 if (cs.length) r +='</span>';
75 r +='<span class="jsdoc-'+ns+'">';
78 if (toks[i].identifier) {
80 r += '<span class="with-ident2">' +
81 escapeHTML(toks[i].data) + '</span>';
85 r += escapeHTML(toks[i].data); //.replace(/\n/g, "<BR/>\n");
87 if (cs.length) r +='</span>';
89 return '<code class="jsdoc-pretty">'+r+'</code>';