Method from net.bonzoun.cocodonkey.CamlParser Detail: |
public void ReInit(InputStream stream) {
jj_input_stream.ReInit(stream, 1, 1);
token_source.ReInit(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 6; i++) jj_la1[i] = -1;
}
|
public void ReInit(Reader stream) {
jj_input_stream.ReInit(stream, 1, 1);
token_source.ReInit(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 6; i++) jj_la1[i] = -1;
}
|
public void ReInit(CamlParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 6; i++) jj_la1[i] = -1;
}
|
public final CamlData data() throws ParseException {
List list;
Map map;
CamlData data;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LBRACE:
map = struct();
data = new CamlData.Map(map);
break;
case LBRACKET:
list = listSem();
data = new CamlData.List(list);
break;
case LPARENT:
list = listCom();
data = new CamlData.List(list);
break;
case STRING:
jj_consume_token(STRING);
if (token.image.length() >2) {
String s = token.image;
int p;
while( (p=s.indexOf("\\\\")) >= 0)
s = s.substring(0, p) + s.substring(p+1);
data = new CamlData.Data(s.substring(1, s.length()-1));
} else
data = new CamlData.Data("");
break;
case SYMBOL:
jj_consume_token(SYMBOL);
data = new CamlData.Data(token.image);
break;
case INTEGER:
jj_consume_token(INTEGER);
data = new CamlData.Data(token.image);
break;
case FLOAT:
jj_consume_token(FLOAT);
data = new CamlData.Data(token.image);
break;
default:
jj_la1[1] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return data;}
throw new Error("Missing return statement in function");
}
|
public final void disable_tracing() {
}
|
public final void enable_tracing() {
}
|
public final ParseException generateParseException() {
jj_expentries.removeAllElements();
boolean[] la1tokens = new boolean[22];
for (int i = 0; i < 22; i++) {
la1tokens[i] = false;
}
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
for (int i = 0; i < 6; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1< < j)) != 0) {
la1tokens[j] = true;
}
}
}
}
for (int i = 0; i < 22; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
jj_expentries.addElement(jj_expentry);
}
}
int[][] exptokseq = new int[jj_expentries.size()][];
for (int i = 0; i < jj_expentries.size(); i++) {
exptokseq[i] = (int[])jj_expentries.elementAt(i);
}
return new ParseException(token, exptokseq, tokenImage);
}
|
public final Token getNextToken() {
if (token.next != null) token = token.next;
else token = token.next = token_source.getNextToken();
jj_ntk = -1;
jj_gen++;
return token;
}
|
public final Token getToken(int index) {
Token t = token;
for (int i = 0; i < index; i++) {
if (t.next != null) t = t.next;
else t = t.next = token_source.getNextToken();
}
return t;
}
|
public final List listCom() throws ParseException {
ArrayList list = new ArrayList();
CamlData data;
jj_consume_token(LPARENT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SYMBOL:
case INTEGER:
case FLOAT:
case STRING:
case LBRACE:
case LBRACKET:
case LPARENT:
data = data();
list.add(data);
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
jj_la1[4] = jj_gen;
break label_4;
}
jj_consume_token(COMMA);
data = data();
list.add(data);
}
break;
default:
jj_la1[5] = jj_gen;
;
}
jj_consume_token(RPARENT);
{if (true) return list;}
throw new Error("Missing return statement in function");
}
|
public final List listSem() throws ParseException {
ArrayList list = new ArrayList();
CamlData data;
jj_consume_token(LBRACKET);
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SYMBOL:
case INTEGER:
case FLOAT:
case STRING:
case LBRACE:
case LBRACKET:
case LPARENT:
;
break;
default:
jj_la1[2] = jj_gen;
break label_2;
}
data = data();
list.add(data);
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SEMICOLON:
;
break;
default:
jj_la1[3] = jj_gen;
break label_3;
}
jj_consume_token(SEMICOLON);
data = data();
list.add(data);
}
}
jj_consume_token(RBRACKET);
{if (true) return list;}
throw new Error("Missing return statement in function");
}
|
public final CamlData parse() throws ParseException {
Map data;
data = struct_content();
jj_consume_token(0);
{if (true) return new CamlData.Map(data);}
throw new Error("Missing return statement in function");
}
|
public static CamlData parse(File file) {
long t0 = System.currentTimeMillis();
try {
CamlParser parser = new CamlParser(new InputStreamReader(new FileInputStream(file), "ISO8859_1"));
return parser.parse();
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
long t = System.currentTimeMillis();
//System.out.println("Parse " + file.getName() + " in " + (t-t0) + "ms");
}
}
|
public final Map struct() throws ParseException {
Map data;
jj_consume_token(LBRACE);
data = struct_content();
jj_consume_token(RBRACE);
{if (true) return data;}
throw new Error("Missing return statement in function");
}
|
public final Map struct_content() throws ParseException {
HashMap map = new HashMap();
String key;
CamlData data;
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SYMBOL:
;
break;
default:
jj_la1[0] = jj_gen;
break label_1;
}
jj_consume_token(SYMBOL);
key = token.image;
jj_consume_token(EQUALS);
data = data();
map.put(key, data);
}
{if (true) return map;}
throw new Error("Missing return statement in function");
}
|