projects
/
gnome.introspection-doc-generator
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JSDOC/CompressWhite.js
[gnome.introspection-doc-generator]
/
JSDOC
/
CompressWhite.js
diff --git
a/JSDOC/CompressWhite.js
b/JSDOC/CompressWhite.js
index
22b99e6
..
f24659a
100644
(file)
--- a/
JSDOC/CompressWhite.js
+++ b/
JSDOC/CompressWhite.js
@@
-4,9
+4,11
@@
* pack a javascript file, and return a shorter version!
*
* a bit picky at present with ; and crlf reading...
* pack a javascript file, and return a shorter version!
*
* a bit picky at present with ; and crlf reading...
- *
+ * @arg ts {TokenStream}
+ @arg packer {Packer}
*/
*/
-JSDOC.CompressWhite = function (ts, packer)
+
+CompressWhite = function (ts, packer)
{
ts.rewind();
{
ts.rewind();
@@
-18,7
+20,7
@@
JSDOC.CompressWhite = function (ts, packer)
if (!tok) {
break;
}
if (!tok) {
break;
}
- if (tok.
_isWS
) {
+ if (tok.
type == "WHIT"
) {
continue;
//if (tok._isDoc) {
// continue;
continue;
//if (tok._isDoc) {
// continue;
@@
-32,22
+34,22
@@
JSDOC.CompressWhite = function (ts, packer)
}
// add semi-colon's where linebreaks are used... - not foolproof yet.!
}
// add semi-colon's where linebreaks are used... - not foolproof yet.!
- if (tok.
isTypeN(Script.TOKidentifier))
{
+ if (tok.
type == "NAME")
{
//var tokident = ts.look(-1).data + tok.data + ts.look(1).data + ts.look(2).data;
// a = new function() {}
//var tokident = ts.look(-1).data + tok.data + ts.look(1).data + ts.look(2).data;
// a = new function() {}
- if (ts.look
(1).isTypeN(Script.TOKassign) && ts.look(2).isTypeN(Script.TOKnew)
&&
- ts.look
(3).isTypeN(Script.TOKfunction)
) {
+ if (ts.look
Tok(1).data == '=' && ts.lookTok(2).name == 'NEW'
&&
+ ts.look
Tok(3).name == 'FUNCTION'
) {
// freeze time..
var cu = ts.cursor;
// freeze time..
var cu = ts.cursor;
- ts.balance("
lparen
");
+ ts.balance("
(
");
- ts.balance("
lbrace
");
+ ts.balance("
{
");
// if next is not ';' -> make it so...
// 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;
}
// restore..
ts.cursor = cu;
@@
-55,17
+57,17
@@
JSDOC.CompressWhite = function (ts, packer)
}
// a = function() { ...
}
// a = function() { ...
- if (ts.look
(1).isTypeN(Script.TOKassign) && ts.look(2).isTypeN(Script.TOKfunction)
) {
+ if (ts.look
Tok(1).data == '=' && ts.lookTok(2).name == "FUNCTION"
) {
// freeze time..
//println("got = function() ");
var cu = ts.cursor;
// 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 next is not ';' -> make it so...
// although this var a=function(){},v,c; causes
- if (!ts.look
(1).isData(';') && !ts.look(1).isData('}') && ts.lo
ok(1,true).isLineBreak()) {
- ts.cur().outData = ts.
cur(
).data+";";
+ if (!ts.look
Tok(1).isData(';') && !ts.lookTok(1).isData('}') && ts.lookT
ok(1,true).isLineBreak()) {
+ ts.cur().outData = ts.
look(0
).data+";";
}
// restore..
ts.cursor = cu;
}
// restore..
ts.cursor = cu;
@@
-93,18
+95,18
@@
JSDOC.CompressWhite = function (ts, packer)
// a = { ....
// a = { ....
- if (ts.look
(1).isTypeN(Script.TOKassign) && ts.look(2).isTypeN(Script.TOKlbrace)
) {
+ if (ts.look
Tok(1).data == '=' && ts.lookTok(2).data == '{'
) {
// freeze time..
//println("----------*** 3 *** --------------");
var cu = ts.cursor;
// 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...
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.lookTok(1).data != ';' && ts.lookTok(1).data != '}' && ts.look(1,true).name=="NEWLINE"
) {
+ ts.
look(0).outData = ts.look(0
).data +";";
}
// restore..
ts.cursor = cu;
}
// restore..
ts.cursor = cu;
@@
-121,20
+123,20
@@
JSDOC.CompressWhite = function (ts, packer)
- switch(tok.
tokN
) {
+ switch(tok.
data.toUpperCase()
) {
// things that need space appending
// 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 next item is a identifier..
- if (ts.look
(1).isTypeN(Script.TOKidentifier) || ts.lo
ok(1).data.match(/^[a-z]+$/i) ) { // as include is a keyword for us!!
+ if (ts.look
Tok(1).type == "NAME" || ts.lookT
ok(1).data.match(/^[a-z]+$/i) ) { // as include is a keyword for us!!
tok.outData = tok.data + " ";
}
continue;
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.look
Tok(1).data == ';' || ts.lookTok(1).data == '}'
) {
continue;
}
tok.outData = tok.data + " ";
continue;
}
tok.outData = tok.data + " ";
@@
-142,46
+144,51
@@
JSDOC.CompressWhite = function (ts, packer)
continue;
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.look
Tok(1).name == "IF"
) {
continue;
}
tok.outData = tok.data + " ";
continue;
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.look
Tok
(1).data == p) {
tok.outData = tok.data + " ";
}
tok.outData = tok.data + " ";
}
- if (ts.look(-1).data == p) {
+ if (ts.look
Tok
(-1).data == p) {
tok.outData = " " + tok.data;
}
continue;
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;
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
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 = '';
//remove semicolon before brace --
//if(ts.look(1).isTypeN(Script.TOKrbrace)) {
// tok.outData = '';
@@
-195,7
+202,7
@@
JSDOC.CompressWhite = function (ts, packer)
ts.rewind();
ts.rewind();
-
+ // NOW OUTPUT THE THING.
//var f = new File(minfile, File.NEW);
var out = '';
//var f = new File(minfile, File.NEW);
var out = '';
@@
-203,24
+210,21
@@
JSDOC.CompressWhite = function (ts, packer)
out.length = ts.slen; // prealloc.
out = '';
while (true) {
out.length = ts.slen; // prealloc.
out = '';
while (true) {
- var tok = ts.next();
+ var tok = ts.next
Tok
();
if (!tok) {
break;
}
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);
//f.write(tok.identifier.mungedValue);
- out +=tok.identifier.mungedValue;
+ out +=
tok.identifier.mungedValue;
continue;
}
// at this point we can apply a text translation kit...
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;
if (packer.stringHandler) {
out += packer.stringHandler(tok);
continue;
@@
-231,7
+235,7
@@
JSDOC.CompressWhite = function (ts, packer)
if ((tok.outData == ';') && (out.length - outoff > 255)) {
outoff = out.length;
if ((tok.outData == ';') && (out.length - outoff > 255)) {
outoff = out.length;
- out +=
'\n'
;
+ out +=
"\n"
;
}
}
//f.close();
}
}
//f.close();