From: <jen...@us...> - 2011-08-22 12:19:16
|
Revision: 3087 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3087&view=rev Author: jenslehmann Date: 2011-08-22 12:19:10 +0000 (Mon, 22 Aug 2011) Log Message: ----------- conf parser change Modified Paths: -------------- trunk/interfaces/src/main/java/org/dllearner/confparser2/ConfParser.java trunk/interfaces/src/main/java/org/dllearner/confparser2/conf2.jj trunk/test/newconf/test1.conf Modified: trunk/interfaces/src/main/java/org/dllearner/confparser2/ConfParser.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser2/ConfParser.java 2011-08-22 11:35:00 UTC (rev 3086) +++ trunk/interfaces/src/main/java/org/dllearner/confparser2/ConfParser.java 2011-08-22 12:19:10 UTC (rev 3087) @@ -161,7 +161,7 @@ jj_consume_token(26); label_2: while (true) { - if (jj_2_4(2)) { + if (jj_2_4(4)) { ; } else { break label_2; @@ -171,14 +171,14 @@ tmp = String(); break; case ID: - tmp = Id(); + tmp = ComplexId(); break; default: jj_la1[2] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - values.add(tmp); + values.add(tmp); jj_consume_token(30); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -186,16 +186,16 @@ tmp = String(); break; case ID: - tmp = Id(); + tmp = ComplexId(); break; default: jj_la1[3] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - values.add(tmp); + values.add(tmp); jj_consume_token(29); - isSet=true; + isSet=true; break; default: jj_la1[9] = jj_gen; @@ -298,7 +298,9 @@ else if(isList) confOption = new ConfFileOption(option,subOption,tuples); else - { if(useColon) + { // this is just a temporary hack to get the double colon notation working; + // of course we can pass value1 and value2 as separate parameters later on + if(useColon) confOption = new ConfFileOption(option,subOption,value1 + ":" + value2); else confOption = new ConfFileOption(option,subOption,value); @@ -354,6 +356,28 @@ throw new Error("Missing return statement in function"); } + final public String ComplexId() throws ParseException { + Token t1,t2; + if (jj_2_9(2)) { + t1 = jj_consume_token(ID); + jj_consume_token(28); + t2 = jj_consume_token(ID); + {if (true) return t1.image + ":" + t2.image;} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + t1 = jj_consume_token(ID); + {if (true) return t1.image;} + break; + default: + jj_la1[12] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + final public String Id() throws ParseException { Token t; t = jj_consume_token(ID); @@ -442,6 +466,13 @@ finally { jj_save(7, xla); } } + private boolean jj_2_9(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_9(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(8, xla); } + } + private boolean jj_3R_5() { if (jj_scan_token(COMMAND_END)) return true; if (jj_3R_4()) return true; @@ -449,7 +480,7 @@ } private boolean jj_3R_11() { - if (jj_3R_4()) return true; + if (jj_3R_19()) return true; return false; } @@ -464,8 +495,8 @@ return false; } - private boolean jj_3R_17() { - if (jj_scan_token(DOUBLE)) return true; + private boolean jj_3R_4() { + if (jj_scan_token(ID)) return true; return false; } @@ -515,11 +546,33 @@ return false; } - private boolean jj_3R_4() { + private boolean jj_3R_20() { if (jj_scan_token(ID)) return true; return false; } + private boolean jj_3R_19() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_9()) { + jj_scanpos = xsp; + if (jj_3R_20()) return true; + } + return false; + } + + private boolean jj_3_9() { + if (jj_scan_token(ID)) return true; + if (jj_scan_token(28)) return true; + if (jj_scan_token(ID)) return true; + return false; + } + + private boolean jj_3R_18() { + if (jj_scan_token(STRING)) return true; + return false; + } + private boolean jj_3R_10() { if (jj_3R_18()) return true; return false; @@ -541,8 +594,8 @@ return false; } - private boolean jj_3R_18() { - if (jj_scan_token(STRING)) return true; + private boolean jj_3R_16() { + if (jj_scan_token(NUMBER)) return true; return false; } @@ -587,8 +640,8 @@ return false; } - private boolean jj_3R_16() { - if (jj_scan_token(NUMBER)) return true; + private boolean jj_3R_17() { + if (jj_scan_token(DOUBLE)) return true; return false; } @@ -613,7 +666,7 @@ private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[12]; + final private int[] jj_la1 = new int[13]; static private int[] jj_la1_0; static private int[] jj_la1_1; static { @@ -621,12 +674,12 @@ jj_la1_init_1(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x1c00,0x100,0x1001000,0x1001000,0x1001000,0x1001000,0x1001000,0x1001000,0x1007000,0x4000000,0x8000000,0x1001000,}; + jj_la1_0 = new int[] {0x1c00,0x100,0x1001000,0x1001000,0x1001000,0x1001000,0x1001000,0x1001000,0x1007000,0x4000000,0x8000000,0x1001000,0x1000,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } - final private JJCalls[] jj_2_rtns = new JJCalls[8]; + final private JJCalls[] jj_2_rtns = new JJCalls[9]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -641,7 +694,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 12; i++) jj_la1[i] = -1; + for (int i = 0; i < 13; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -656,7 +709,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 12; i++) jj_la1[i] = -1; + for (int i = 0; i < 13; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -667,7 +720,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 12; i++) jj_la1[i] = -1; + for (int i = 0; i < 13; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -678,7 +731,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 12; i++) jj_la1[i] = -1; + for (int i = 0; i < 13; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -688,7 +741,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 12; i++) jj_la1[i] = -1; + for (int i = 0; i < 13; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -698,7 +751,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 12; i++) jj_la1[i] = -1; + for (int i = 0; i < 13; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -815,7 +868,7 @@ la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 12; i++) { + for (int i = 0; i < 13; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { @@ -854,7 +907,7 @@ private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 8; i++) { + for (int i = 0; i < 9; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -869,6 +922,7 @@ case 5: jj_3_6(); break; case 6: jj_3_7(); break; case 7: jj_3_8(); break; + case 8: jj_3_9(); break; } } p = p.next; Modified: trunk/interfaces/src/main/java/org/dllearner/confparser2/conf2.jj =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser2/conf2.jj 2011-08-22 11:35:00 UTC (rev 3086) +++ trunk/interfaces/src/main/java/org/dllearner/confparser2/conf2.jj 2011-08-22 12:19:10 UTC (rev 3087) @@ -183,8 +183,8 @@ // empty set | LOOKAHEAD("{" "}") "{" "}" {isSet=true;} // set with several elements - | "{" ( LOOKAHEAD(2) ( tmp=String() | tmp=Id() ) {values.add(tmp);} "," )* - (tmp=String() | tmp=Id()) {values.add(tmp);} "}" {isSet=true;} + | "{" ( LOOKAHEAD(4) ( tmp=String() | tmp=ComplexId() ) { values.add(tmp);} "," )* + (tmp=String() | tmp=ComplexId()) {values.add(tmp);} "}" {isSet=true;} // empty list | LOOKAHEAD("[" "]") "[" "]" {isList=true;} // a list with several elements, which tuples @@ -258,6 +258,16 @@ } } +String ComplexId() : +{ + Token t1,t2; +} +{ + LOOKAHEAD(2) t1=<ID> ":" t2=<ID> { return t1.image + ":" + t2.image; } + |t1=<ID> { return t1.image; } +} + + String Id() : { Token t; Modified: trunk/test/newconf/test1.conf =================================================================== --- trunk/test/newconf/test1.conf 2011-08-22 11:35:00 UTC (rev 3086) +++ trunk/test/newconf/test1.conf 2011-08-22 12:19:10 UTC (rev 3087) @@ -12,8 +12,10 @@ beanName.property = 78.5; // a double value -beanName.property={"a"}; // a set (list is not implemented, but can be done analogously) +beanName.property={"a", "b"}; // a set (list is not implemented, but can be done analogously) +beanName.property = { component:test1, component:test2, component:test3 }; + beanName.property=[("a","b"),("c","d")]; // a map (we can use whatever syntax we like, this is the existing one) // you can also specify positive and negative examples This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |