pike.git/
lib/
modules/
Parser.pmod/
Pike.pmod
Branch:
Tag:
Non-build tags
All tags
No tags
2003-01-18
2003-01-18 17:55:55 by Martin Nilsson <mani@lysator.liu.se>
f65b1a92ce0cd8cfc0231f0a1f3deccb825713dd (
17
lines) (+
13
/-
4
)
[
Show
|
Annotate
]
Branch:
7.9
/**/ bugfixes
Rev: lib/modules/Parser.pmod/C.pmod:1.37
Rev: lib/modules/Parser.pmod/Pike.pmod:1.29
4:
// // #pike __REAL_VERSION__ //
-
// $Id: Pike.pmod,v 1.
28
2003/01/18
02
:
13
:
19
nilsson Exp $
+
// $Id: Pike.pmod,v 1.
29
2003/01/18
17
:
55
:
55
nilsson Exp $
//! This module parses and tokanizes Pike source code.
43:
int line=1; array(string) ret=({}); int pos;
+
if(data=="") return ({"\n"});
data += "\n\0"; // End sentinel. if(state && state->in_token) { switch(state->remains[0..1]) { case "/*":
-
+
if(sizeof(state->remains)>2 && state->remains[-1]=='*'
+
&& data[0]=='/') {
+
ret += ({ state->remains + "/" });
+
pos++;
+
m_delete(state, "remains");
+
break;
+
}
pos = search(data, "*/"); if(pos==-1) { state->in_token = 1;
70:
if( q==-1 || (s==sizeof(data)-2 && s<q) ) { state->in_token = 1;
-
state->remains += data[..sizeof(data)-
2
];
+
state->remains += data[..sizeof(data)-
3
];
return ret; }
111:
(s==sizeof(data)-2 && s<q) ) { if(state) { state->in_token = 1;
-
state->remains = data[pos-1..sizeof(data)-
2
];
+
state->remains = data[pos-1..sizeof(data)-
3
];
return ret; } error("Failed to find end of multiline string.\n");
272:
pos=search(data,"*/",pos); if(pos==-1) { if(state) {
-
state->remains = data[start..sizeof(data)-
2
];
+
state->remains = data[start..sizeof(data)-
3
];
state->in_token = 1; return ret; }