X-Git-Url: http://git.roojs.org/?p=gnome.introspection-doc-generator;a=blobdiff_plain;f=JSDOC%2FCompressWhite.js;h=13d6df7d2ffb93c497dcbad5cc57e86ee2abeac4;hp=535ff9041556a4c2e251583d3bd6df0dc863b4e9;hb=6534df3589197eabe11704e9f7a18cff965898f2;hpb=cdbc5c06dcc25ddea639a01ee1883fb652f81a92 diff --git a/JSDOC/CompressWhite.js b/JSDOC/CompressWhite.js index 535ff90..13d6df7 100644 --- a/JSDOC/CompressWhite.js +++ b/JSDOC/CompressWhite.js @@ -8,9 +8,9 @@ @arg packer {Packer} */ -CompressWhite = function (ts, packer) +CompressWhite = function (ts, packer, keepWhite) { - + keepWhite = keepWhite || false; ts.rewind(); //var str = File.read(fn); var rep_var = 1; @@ -21,6 +21,7 @@ CompressWhite = function (ts, packer) break; } if (tok.type == "WHIT") { + continue; //if (tok._isDoc) { // continue; @@ -32,7 +33,16 @@ CompressWhite = function (ts, packer) } - + if (tok.data == "}") { + + if (ts.lookTok(1).type == 'NAME' && ts.look(1,true).name == "NEWLINE") { + + ts.look(0).outData = ts.look(0).data+"\n"; + } + // restore.. + + continue; + } // add semi-colon's where linebreaks are used... - not foolproof yet.! if (tok.type == "NAME") { //var tokident = ts.look(-1).data + tok.data + ts.look(1).data + ts.look(2).data; @@ -62,13 +72,37 @@ CompressWhite = function (ts, packer) //println("got = function() "); var cu = ts.cursor; - ts.balance("("); - ts.balance("{"); + if (!ts.balance("(") ){ + ts.dump(cu-40, cu); + print(">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>"); + ts.dump(cu, cu+40); + + throw "could not find end lbrace!!!"; + } + //print("AFTER BALANCE ("); + //ts.dump(cu, ts.cursor); + //ts.cursor--; // cursor at the ( + if (!ts.balance("{") ){ + ts.dump(cu-40, cu); + print(">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>"); + ts.dump(cu, cu+40); + + throw "could not find end lbrace!!!"; + } + //print('FN: '+ts.tokens[cu].toString()); + //print('F1: '+ts.lookTok(1).toString()); + //print('F2: '+ts.look(1,true).toString()); + // if next is not ';' -> make it so... // although this var a=function(){},v,c; causes - if (ts.lookTok(1).data != ';' && ts.lookTok(1).data != '}' && ts.lookTok(1,true).name == "NEWLINE") { + if (ts.lookTok(1).data != ';' && ts.lookTok(1).data != '}' && ts.look(1,true).name == "NEWLINE") { + ts.look(0).outData = ts.look(0).data+";"; + // print("ADDING SEMI: " + ts.look(0).toString()); + //ts.dump(cu, ts.cursor+2); } + + //ts.dump(cu, ts.cursor+2); // restore.. ts.cursor = cu; continue; @@ -84,10 +118,9 @@ CompressWhite = function (ts, packer) ts.balance("("); // although this var a=function(){},v,c; causes - print("()LF : " +ts.lookTok(1).toString()); - print("()LF : " +ts.look(1,true).toString()); - if (ts.lookTok(1).type == 'NAME' && ts.lookTok(1,true).name == "NEWLINE") { - print("ADD LINE BREAK!?"); + + if (ts.lookTok(1).type == 'NAME' && ts.look(1,true).name == "NEWLINE") { + ts.look(0).outData = ts.look(0).data+"\n"; } // restore.. @@ -124,10 +157,14 @@ CompressWhite = function (ts, packer) var cu = ts.cursor; if (!ts.balance("{") ){ + ts.dump(cu-40, cu); + print(">>>>>>>>>>>>>>>>>HERE>>>>>>>>>>>>"); + ts.dump(cu, cu+40); + throw "could not find end lbrace!!!"; } // if next is not ';' -> make it so... - + if (ts.lookTok(1).data != ';' && ts.lookTok(1).data != '}' && ts.look(1,true).name=="NEWLINE") { ts.look(0).outData = ts.look(0).data +";"; } @@ -137,6 +174,8 @@ CompressWhite = function (ts, packer) } // any more?? + // a = function(....) { } + } @@ -232,12 +271,17 @@ CompressWhite = function (ts, packer) var outoff = 0; out.length = ts.slen; // prealloc. out = ''; + var tok; while (true) { - var tok = ts.nextTok(); + + tok = keepWhite ? ts.next() : ts.nextTok(); + if (!tok) { break; } - + if (tok.name == "COMM") { + tok.outData == '\n'; + } if (tok.type == "NAME" && tok.identifier && tok.identifier.mungedValue && tok.identifier.mungedValue.length) { //f.write(tok.identifier.mungedValue); @@ -253,7 +297,7 @@ CompressWhite = function (ts, packer) continue; } } - //f.write(tok.outData); + out += tok.outData !== false ? tok.outData : tok.data; if ((tok.outData == ';') && (out.length - outoff > 255)) {