X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=JSDOC%2FCompressWhite.js;h=536924f370e21dd4fa2a63787a04655fd4828601;hb=0907a48ab81ebb59b62919c93008e7bc9210076c;hp=eba595733ef9d1b87e0042f474cee3de51fa7289;hpb=350c3fa1ffc8d4ef0e847bc00a68048463e32779;p=gnome.introspection-doc-generator diff --git a/JSDOC/CompressWhite.js b/JSDOC/CompressWhite.js index eba5957..536924f 100644 --- a/JSDOC/CompressWhite.js +++ b/JSDOC/CompressWhite.js @@ -34,22 +34,22 @@ CompressWhite = function (ts, packer) } // add semi-colon's where linebreaks are used... - not foolproof yet.! - if (tok.type == "NAME")) { + if (tok.type == "NAME") { //var tokident = ts.look(-1).data + tok.data + ts.look(1).data + ts.look(2).data; // a = new function() {} if (ts.lookTok(1).data == '=' && ts.lookTok(2).name == 'NEW' && - ts.look(3).name == 'FUNCTION') { + ts.lookTok(3).name == 'FUNCTION') { // freeze time.. var cu = ts.cursor; - ts.balance("lparen"); + ts.balance("("); - ts.balance("lbrace"); + ts.balance("{"); // if next is not ';' -> make it so... - if (!ts.look(1).isTypeN(Script.TOKsemicolon) && !ts.look(1).isTypeN(Script.TOKrbrace) && ts.look(1,true).isLineBreak()) { - ts.cur().outData = ts.cur().data +";"; + if (ts.lookTok(1).data != ';' && ts.lookTok(1).data != '}' && ts.lookTok(1,true).name == "NEWLINE") { + ts.look(0).outData = ts.cur().data +";"; } // restore.. ts.cursor = cu; @@ -57,17 +57,17 @@ CompressWhite = function (ts, packer) } // a = function() { ... - if (ts.look(1).isTypeN(Script.TOKassign) && ts.look(2).isTypeN(Script.TOKfunction)) { + if (ts.lookTok(1).data == '=' && ts.lookTok(2).name == "FUNCTION") { // freeze time.. //println("got = function() "); var cu = ts.cursor; - ts.balance("lparen"); - ts.balance("lbrace"); + ts.balance("("); + ts.balance("{"); // if next is not ';' -> make it so... // although this var a=function(){},v,c; causes - if (!ts.look(1).isData(';') && !ts.look(1).isData('}') && ts.look(1,true).isLineBreak()) { - ts.cur().outData = ts.cur().data+";"; + if (!ts.lookTok(1).isData(';') && !ts.lookTok(1).isData('}') && ts.lookTok(1,true).isLineBreak()) { + ts.cur().outData = ts.look(0).data+";"; } // restore.. ts.cursor = cu; @@ -95,18 +95,18 @@ CompressWhite = function (ts, packer) // a = { .... - if (ts.look(1).isTypeN(Script.TOKassign) && ts.look(2).isTypeN(Script.TOKlbrace)) { + if (ts.look(1).data == '=' && ts.look(2).data == '{') { // freeze time.. //println("----------*** 3 *** --------------"); var cu = ts.cursor; - if (!ts.balance("lbrace") ){ + if (!ts.balance("{") ){ throw "could not find end lbrace!!!"; } // if next is not ';' -> make it so... - if (!ts.look(1).isData(';') && !ts.look(1).isData('}') && ts.look(1,true).isLineBreak()) { - ts.cur().outData = ts.cur().data +";"; + if (!ts.look(1).data == ';' && ts.look(1).data != '}' && ts.look(1,true).name=="NEWLINE") { + ts.look(0).outData = ts.look(0).data +";"; } // restore.. ts.cursor = cu; @@ -123,20 +123,20 @@ CompressWhite = function (ts, packer) - switch(tok.tokN) { + switch(tok.data.toUpperCase()) { // things that need space appending - case Script.TOKfunction: - case Script.TOKbreak: - case Script.TOKcontinue: + case "FUNCTION": + case "BREAK": + case "CONTINUE": // if next item is a identifier.. - if (ts.look(1).isTypeN(Script.TOKidentifier) || ts.look(1).data.match(/^[a-z]+$/i) ) { // as include is a keyword for us!! + if (ts.lookTok(1).type == "NAME" || ts.lookTok(1).data.match(/^[a-z]+$/i) ) { // as include is a keyword for us!! tok.outData = tok.data + " "; } continue; - case Script.TOKreturn: // if next item is not a semi; (or } - if (ts.look(1).isData(';') || ts.look(1).isData('}')) { + case "RETURN": // if next item is not a semi; (or } + if (ts.lookTok(1).data == ';' || ts.lookTok(1).data == '}') { continue; } tok.outData = tok.data + " "; @@ -144,46 +144,51 @@ CompressWhite = function (ts, packer) continue; - case Script.TOKelse: // if next item is not a semi; (or } - if (!ts.look(1).isTypeN(Script.TOKif)) { + case "ELSE": // if next item is not a semi; (or } + if (!ts.lookTok(1).name == "IF") { continue; } tok.outData = tok.data + " "; continue; - case Script.TOKplusplus: // if previous was a plus or next is a + add a space.. - case Script.TOKminusminus: // if previous was a - or next is a - add a space.. + case "++": // if previous was a plus or next is a + add a space.. + case "--": // if previous was a - or next is a - add a space.. - var p = (Script.TOKminusminus == tok.tokN ? '-' : '+'); + var p = (tok.data == "--" ? '-' : '+'); - if (ts.look(1).data == p) { + if (ts.lookTok(1).data == p) { tok.outData = tok.data + " "; } - if (ts.look(-1).data == p) { + if (ts.lookTok(-1).data == p) { tok.outData = " " + tok.data; } continue; - case Script.TOKin: // before and after?? - case Script.TOKinstanceof: + case "IN": // before and after?? + case "INSTANCEOF": tok.outData = " " + tok.data + " "; continue; - case Script.TOKvar: // always after.. - case Script.TOKnew: - case Script.TOKdelete: - case Script.TOKthrow: - case Script.TOKnew: - case Script.TOKcase: - case Script.TOKtypeof: - case Script.TOKvoid: + case "VAR": // always after.. + case "NEW": + case "DELETE": + case "THROW": + case "CASE": + + case "VOID": tok.outData = tok.data + " "; continue - case Script.TOKsemicolon: + + case "TYPEOF": // what about typeof( + if (ts.lookTok(1).data != '(') { + tok.outData = tok.data + " "; + } + continue; + case ";" //remove semicolon before brace -- //if(ts.look(1).isTypeN(Script.TOKrbrace)) { // tok.outData = ''; @@ -197,7 +202,7 @@ CompressWhite = function (ts, packer) ts.rewind(); - + // NOW OUTPUT THE THING. //var f = new File(minfile, File.NEW); var out = ''; @@ -205,24 +210,21 @@ CompressWhite = function (ts, packer) out.length = ts.slen; // prealloc. out = ''; while (true) { - var tok = ts.next(); + var tok = ts.nextTok(); if (!tok) { break; } - if (tok._isWS) { - continue; - } - if (tok.isTypeN(Script.TOKidentifier) && tok.identifier && tok.identifier.mungedValue.length) { + if (tok.type == "NAME" && tok.identifier && tok.identifier.mungedValue.length) { //f.write(tok.identifier.mungedValue); - out +=tok.identifier.mungedValue; + out += tok.identifier.mungedValue; continue; } // at this point we can apply a text translation kit... - if (tok.type == 'string') { + if (tok.type == 'STRN') && (tok.name== 'DOUBLE_QUOTE') { if (packer.stringHandler) { out += packer.stringHandler(tok); continue; @@ -233,7 +235,7 @@ CompressWhite = function (ts, packer) if ((tok.outData == ';') && (out.length - outoff > 255)) { outoff = out.length; - out += '\n'; + out += "\n"; } } //f.close();