From: <jen...@us...> - 2011-12-01 11:25:23
|
Revision: 3458 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3458&view=rev Author: jenslehmann Date: 2011-12-01 11:25:16 +0000 (Thu, 01 Dec 2011) Log Message: ----------- extended Manchester Syntax Parser such that < and > are now optional for URIs Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/core/config/ClassExpressionPropertyEditor.java trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParser.java trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParserConstants.java trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParserTokenManager.java trunk/components-core/src/main/java/org/dllearner/parser/manchester.jj Modified: trunk/components-core/src/main/java/org/dllearner/core/config/ClassExpressionPropertyEditor.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/config/ClassExpressionPropertyEditor.java 2011-12-01 11:01:47 UTC (rev 3457) +++ trunk/components-core/src/main/java/org/dllearner/core/config/ClassExpressionPropertyEditor.java 2011-12-01 11:25:16 UTC (rev 3458) @@ -71,8 +71,10 @@ @Override public void setAsText(String arg0) throws IllegalArgumentException { // we assume that the start class string is given in Manchester syntax +// System.out.println("parser string: " + arg0); try { description = ManchesterSyntaxParser.parseClassExpression(arg0); +// System.out.println("parsed: " + description); } catch (ParseException e) { throw new IllegalArgumentException(e); } Modified: trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParser.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParser.java 2011-12-01 11:01:47 UTC (rev 3457) +++ trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParser.java 2011-12-01 11:25:16 UTC (rev 3458) @@ -28,32 +28,32 @@ default: jj_la1[0] = jj_gen; if (jj_2_1(2147483647)) { - jj_consume_token(21); + jj_consume_token(22); c1 = ClassExpression(); jj_consume_token(AND); c2 = ClassExpression(); - jj_consume_token(22); + jj_consume_token(23); {if (true) return new Intersection(c1,c2);} } else if (jj_2_2(2147483647)) { - jj_consume_token(21); + jj_consume_token(22); c1 = ClassExpression(); jj_consume_token(OR); c2 = ClassExpression(); - jj_consume_token(22); + jj_consume_token(23); {if (true) return new Union(c1,c2);} } else if (jj_2_3(2147483647)) { - jj_consume_token(21); + jj_consume_token(22); s = URI(); jj_consume_token(SOME); c = ClassExpression(); - jj_consume_token(22); + jj_consume_token(23); {if (true) return new ObjectSomeRestriction(new ObjectProperty(s),c);} } else if (jj_2_4(2147483647)) { - jj_consume_token(21); + jj_consume_token(22); s = URI(); jj_consume_token(ONLY); c = ClassExpression(); - jj_consume_token(22); + jj_consume_token(23); {if (true) return new ObjectAllRestriction(new ObjectProperty(s),c);} } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -66,7 +66,7 @@ jj_consume_token(GE); i = Integer(); s = URI(); - jj_consume_token(23); + jj_consume_token(24); c = ClassExpression(); {if (true) return new ObjectMinCardinalityRestriction(i,new ObjectProperty(s),c);} break; @@ -74,29 +74,30 @@ jj_consume_token(LE); i = Integer(); s = URI(); - jj_consume_token(23); + jj_consume_token(24); c = ClassExpression(); {if (true) return new ObjectMaxCardinalityRestriction(i,new ObjectProperty(s),c);} break; default: jj_la1[1] = jj_gen; if (jj_2_5(4)) { - jj_consume_token(21); + jj_consume_token(22); s1 = URI(); - jj_consume_token(24); + jj_consume_token(25); s2 = URI(); - jj_consume_token(22); + jj_consume_token(23); {if (true) return new ObjectValueRestriction(new ObjectProperty(s1), new Individual(s2));} } else if (jj_2_6(4)) { - jj_consume_token(21); + jj_consume_token(22); s1 = URI(); - jj_consume_token(24); + jj_consume_token(25); s2 = String(); - jj_consume_token(22); + jj_consume_token(23); {if (true) return new StringValueRestriction(new DatatypeProperty(s1), s2);} } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case URI: + case URI_PREFIX: s = URI(); {if (true) return new NamedClass(s);} break; @@ -140,11 +141,24 @@ final public String URI() throws ParseException { Token t; String s; - t = jj_consume_token(URI); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case URI_PREFIX: + // LOOKAHEAD("<") + t = jj_consume_token(URI_PREFIX); // cut "<" and ">" s = t.image; s = s.substring(1, s.length() - 1); {if (true) return s;} + break; + case URI: + t = jj_consume_token(URI); + {if (true) return t.image;} + break; + default: + jj_la1[3] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } throw new Error("Missing return statement in function"); } @@ -190,30 +204,21 @@ finally { jj_save(5, xla); } } - private boolean jj_3R_8() { - if (jj_scan_token(21)) return true; - if (jj_3R_2()) return true; - if (jj_scan_token(SOME)) return true; - if (jj_3R_1()) return true; + private boolean jj_3R_7() { if (jj_scan_token(22)) return true; - return false; - } - - private boolean jj_3R_7() { - if (jj_scan_token(21)) return true; if (jj_3R_1()) return true; if (jj_scan_token(OR)) return true; if (jj_3R_1()) return true; - if (jj_scan_token(22)) return true; + if (jj_scan_token(23)) return true; return false; } private boolean jj_3R_6() { - if (jj_scan_token(21)) return true; + if (jj_scan_token(22)) return true; if (jj_3R_1()) return true; if (jj_scan_token(AND)) return true; if (jj_3R_1()) return true; - if (jj_scan_token(22)) return true; + if (jj_scan_token(23)) return true; return false; } @@ -267,48 +272,63 @@ return false; } - private boolean jj_3R_14() { + private boolean jj_3R_16() { if (jj_scan_token(NUMBER)) return true; return false; } + private boolean jj_3R_15() { + if (jj_scan_token(URI)) return true; + return false; + } + private boolean jj_3R_13() { if (jj_3R_2()) return true; return false; } + private boolean jj_3R_14() { + if (jj_scan_token(URI_PREFIX)) return true; + return false; + } + private boolean jj_3R_2() { - if (jj_scan_token(URI)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_14()) { + jj_scanpos = xsp; + if (jj_3R_15()) return true; + } return false; } private boolean jj_3_6() { - if (jj_scan_token(21)) return true; + if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; - if (jj_scan_token(24)) return true; + if (jj_scan_token(25)) return true; if (jj_3R_3()) return true; - if (jj_scan_token(22)) return true; + if (jj_scan_token(23)) return true; return false; } private boolean jj_3_4() { - if (jj_scan_token(21)) return true; + if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; if (jj_scan_token(ONLY)) return true; return false; } private boolean jj_3_5() { - if (jj_scan_token(21)) return true; + if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; - if (jj_scan_token(24)) return true; + if (jj_scan_token(25)) return true; if (jj_3R_2()) return true; - if (jj_scan_token(22)) return true; + if (jj_scan_token(23)) return true; return false; } private boolean jj_3_3() { - if (jj_scan_token(21)) return true; + if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; if (jj_scan_token(SOME)) return true; return false; @@ -316,15 +336,15 @@ private boolean jj_3R_12() { if (jj_scan_token(LE)) return true; - if (jj_3R_14()) return true; + if (jj_3R_16()) return true; if (jj_3R_2()) return true; - if (jj_scan_token(23)) return true; + if (jj_scan_token(24)) return true; if (jj_3R_1()) return true; return false; } private boolean jj_3_2() { - if (jj_scan_token(21)) return true; + if (jj_scan_token(22)) return true; if (jj_3R_1()) return true; if (jj_scan_token(OR)) return true; return false; @@ -332,9 +352,9 @@ private boolean jj_3R_11() { if (jj_scan_token(GE)) return true; - if (jj_3R_14()) return true; + if (jj_3R_16()) return true; if (jj_3R_2()) return true; - if (jj_scan_token(23)) return true; + if (jj_scan_token(24)) return true; if (jj_3R_1()) return true; return false; } @@ -346,18 +366,18 @@ } private boolean jj_3_1() { - if (jj_scan_token(21)) return true; + if (jj_scan_token(22)) return true; if (jj_3R_1()) return true; if (jj_scan_token(AND)) return true; return false; } private boolean jj_3R_9() { - if (jj_scan_token(21)) return true; + if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; if (jj_scan_token(ONLY)) return true; if (jj_3R_1()) return true; - if (jj_scan_token(22)) return true; + if (jj_scan_token(23)) return true; return false; } @@ -366,6 +386,15 @@ return false; } + private boolean jj_3R_8() { + if (jj_scan_token(22)) return true; + if (jj_3R_2()) return true; + if (jj_scan_token(SOME)) return true; + if (jj_3R_1()) return true; + if (jj_scan_token(23)) return true; + return false; + } + /** Generated Token Manager. */ public ManchesterSyntaxParserTokenManager token_source; SimpleCharStream jj_input_stream; @@ -377,13 +406,13 @@ private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[3]; + final private int[] jj_la1 = new int[4]; static private int[] jj_la1_0; static { jj_la1_init_0(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0xc00,0x70000,0x100000,}; + jj_la1_0 = new int[] {0xc00,0x70000,0x300000,0x300000,}; } final private JJCalls[] jj_2_rtns = new JJCalls[6]; private boolean jj_rescan = false; @@ -400,7 +429,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 3; i++) jj_la1[i] = -1; + for (int i = 0; i < 4; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -415,7 +444,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 3; i++) jj_la1[i] = -1; + for (int i = 0; i < 4; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -426,7 +455,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 3; i++) jj_la1[i] = -1; + for (int i = 0; i < 4; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -437,7 +466,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 3; i++) jj_la1[i] = -1; + for (int i = 0; i < 4; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -447,7 +476,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 3; i++) jj_la1[i] = -1; + for (int i = 0; i < 4; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -457,7 +486,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 3; i++) jj_la1[i] = -1; + for (int i = 0; i < 4; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -569,12 +598,12 @@ /** Generate ParseException. */ public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[25]; + boolean[] la1tokens = new boolean[26]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 4; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { @@ -583,7 +612,7 @@ } } } - for (int i = 0; i < 25; i++) { + for (int i = 0; i < 26; i++) { if (la1tokens[i]) { jj_expentry = new int[1]; jj_expentry[0] = i; Modified: trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParserConstants.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParserConstants.java 2011-12-01 11:01:47 UTC (rev 3457) +++ trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParserConstants.java 2011-12-01 11:25:16 UTC (rev 3458) @@ -42,6 +42,8 @@ int STRING = 19; /** RegularExpression Id. */ int URI = 20; + /** RegularExpression Id. */ + int URI_PREFIX = 21; /** Lexical state. */ int DEFAULT = 0; @@ -69,6 +71,7 @@ "\"<=\"", "<STRING>", "<URI>", + "<URI_PREFIX>", "\"(\"", "\")\"", "\".\"", Modified: trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParserTokenManager.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParserTokenManager.java 2011-12-01 11:01:47 UTC (rev 3457) +++ trunk/components-core/src/main/java/org/dllearner/parser/ManchesterSyntaxParserTokenManager.java 2011-12-01 11:25:16 UTC (rev 3458) @@ -18,12 +18,28 @@ { case 0: if ((active0 & 0x40000L) != 0L) - return 34; + return 39; + if ((active0 & 0x3c1fc06L) != 0L) + return 40; return -1; case 1: if ((active0 & 0x40000L) != 0L) - return 34; + return 39; + if ((active0 & 0x201fc00L) != 0L) + return 40; return -1; + case 2: + if ((active0 & 0x201dc00L) != 0L) + return 40; + return -1; + case 3: + if ((active0 & 0x200c800L) != 0L) + return 40; + return -1; + case 4: + if ((active0 & 0x2000800L) != 0L) + return 40; + return -1; default : return -1; } @@ -42,12 +58,16 @@ { switch(curChar) { + case 9: + return jjStartNfaWithStates_0(0, 2, 40); + case 32: + return jjStartNfaWithStates_0(0, 1, 40); case 40: - return jjStopAtPos(0, 21); + return jjStartNfaWithStates_0(0, 22, 40); case 41: - return jjStopAtPos(0, 22); + return jjStartNfaWithStates_0(0, 23, 40); case 46: - return jjStopAtPos(0, 23); + return jjStartNfaWithStates_0(0, 24, 40); case 60: return jjMoveStringLiteralDfa1_0(0x40000L); case 62: @@ -65,7 +85,7 @@ case 115: return jjMoveStringLiteralDfa1_0(0x4000L); case 118: - return jjMoveStringLiteralDfa1_0(0x1000000L); + return jjMoveStringLiteralDfa1_0(0x2000000L); default : return jjMoveNfa_0(0, 0); } @@ -83,19 +103,19 @@ if ((active0 & 0x20000L) != 0L) return jjStopAtPos(1, 17); else if ((active0 & 0x40000L) != 0L) - return jjStartNfaWithStates_0(1, 18, 34); + return jjStartNfaWithStates_0(1, 18, 39); break; case 79: return jjMoveStringLiteralDfa2_0(active0, 0xc00L); case 97: - return jjMoveStringLiteralDfa2_0(active0, 0x1000000L); + return jjMoveStringLiteralDfa2_0(active0, 0x2000000L); case 110: return jjMoveStringLiteralDfa2_0(active0, 0x9000L); case 111: return jjMoveStringLiteralDfa2_0(active0, 0x14000L); case 114: if ((active0 & 0x2000L) != 0L) - return jjStopAtPos(1, 13); + return jjStartNfaWithStates_0(1, 13, 40); break; default : break; @@ -115,21 +135,21 @@ { case 80: if ((active0 & 0x400L) != 0L) - return jjStopAtPos(2, 10); + return jjStartNfaWithStates_0(2, 10, 40); break; case 84: return jjMoveStringLiteralDfa3_0(active0, 0x800L); case 100: if ((active0 & 0x1000L) != 0L) - return jjStopAtPos(2, 12); + return jjStartNfaWithStates_0(2, 12, 40); break; case 108: - return jjMoveStringLiteralDfa3_0(active0, 0x1008000L); + return jjMoveStringLiteralDfa3_0(active0, 0x2008000L); case 109: return jjMoveStringLiteralDfa3_0(active0, 0x4000L); case 116: if ((active0 & 0x10000L) != 0L) - return jjStopAtPos(2, 16); + return jjStartNfaWithStates_0(2, 16, 40); break; default : break; @@ -151,13 +171,13 @@ return jjMoveStringLiteralDfa4_0(active0, 0x800L); case 101: if ((active0 & 0x4000L) != 0L) - return jjStopAtPos(3, 14); + return jjStartNfaWithStates_0(3, 14, 40); break; case 117: - return jjMoveStringLiteralDfa4_0(active0, 0x1000000L); + return jjMoveStringLiteralDfa4_0(active0, 0x2000000L); case 121: if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(3, 15); + return jjStartNfaWithStates_0(3, 15, 40); break; default : break; @@ -178,8 +198,8 @@ case 79: return jjMoveStringLiteralDfa5_0(active0, 0x800L); case 101: - if ((active0 & 0x1000000L) != 0L) - return jjStopAtPos(4, 24); + if ((active0 & 0x2000000L) != 0L) + return jjStartNfaWithStates_0(4, 25, 40); break; default : break; @@ -199,7 +219,7 @@ { case 77: if ((active0 & 0x800L) != 0L) - return jjStopAtPos(5, 11); + return jjStartNfaWithStates_0(5, 11, 40); break; default : break; @@ -220,7 +240,7 @@ private int jjMoveNfa_0(int startState, int curPos) { int startsAt = 0; - jjnewStateCnt = 34; + jjnewStateCnt = 39; int i = 1; jjstateSet[0] = startState; int kind = 0x7fffffff; @@ -235,7 +255,27 @@ { switch(jjstateSet[--i]) { + case 39: + if ((0xbfffffffffffdbffL & l) != 0L) + jjCheckNAddTwoStates(10, 11); + if (curChar == 58) + jjCheckNAddTwoStates(12, 13); + break; + case 40: + if ((0xafffffffffffdbffL & l) != 0L) + jjCheckNAddTwoStates(6, 7); + if (curChar == 58) + { + if (kind > 20) + kind = 20; + jjCheckNAdd(8); + } + break; case 0: + if ((0xafffffffffffdbffL & l) != 0L) + jjCheckNAddTwoStates(6, 7); + else if (curChar == 60) + jjCheckNAddTwoStates(10, 11); if ((0x3fe000000000000L & l) != 0L) { if (kind > 8) @@ -246,26 +286,21 @@ { if (kind > 8) kind = 8; - jjCheckNAdd(31); + jjCheckNAdd(36); } else if (curChar == 47) jjAddStates(3, 5); - else if (curChar == 60) - jjCheckNAddTwoStates(7, 8); + else if (curChar == 58) + { + if (kind > 20) + kind = 20; + jjCheckNAdd(8); + } else if (curChar == 39) jjCheckNAddTwoStates(4, 5); else if (curChar == 34) jjCheckNAddTwoStates(1, 2); break; - case 34: - if ((0xbfffffffffffdbffL & l) != 0L) - jjCheckNAddTwoStates(7, 8); - else if (curChar == 62) - { - if (kind > 20) - kind = 20; - } - break; case 1: if ((0xfffffffbffffdbffL & l) != 0L) jjCheckNAddTwoStates(1, 2); @@ -287,131 +322,157 @@ kind = 19; break; case 6: - if (curChar == 60) - jjCheckNAddTwoStates(7, 8); + if ((0xafffffffffffdbffL & l) != 0L) + jjCheckNAddTwoStates(6, 7); break; case 7: - if ((0xbfffffffffffdbffL & l) != 0L) - jjCheckNAddTwoStates(7, 8); + if (curChar != 58) + break; + if (kind > 20) + kind = 20; + jjCheckNAdd(8); break; case 8: - if (curChar == 62 && kind > 20) + if ((0xafffffffffffdbffL & l) == 0L) + break; + if (kind > 20) kind = 20; + jjCheckNAdd(8); break; case 9: + if (curChar == 60) + jjCheckNAddTwoStates(10, 11); + break; + case 10: + if ((0xbfffffffffffdbffL & l) != 0L) + jjCheckNAddTwoStates(10, 11); + break; + case 11: + if (curChar == 58) + jjCheckNAddTwoStates(12, 13); + break; + case 12: + if ((0xbfffffffffffdbffL & l) != 0L) + jjCheckNAddTwoStates(12, 13); + break; + case 13: + if (curChar == 62 && kind > 21) + kind = 21; + break; + case 14: if (curChar == 47) jjAddStates(3, 5); break; - case 10: + case 15: if (curChar == 47) jjCheckNAddStates(6, 8); break; - case 11: + case 16: if ((0xffffffffffffdbffL & l) != 0L) jjCheckNAddStates(6, 8); break; - case 12: + case 17: if ((0x2400L & l) != 0L && kind > 5) kind = 5; break; - case 13: + case 18: if (curChar == 10 && kind > 5) kind = 5; break; - case 14: + case 19: if (curChar == 13) - jjstateSet[jjnewStateCnt++] = 13; + jjstateSet[jjnewStateCnt++] = 18; break; - case 15: + case 20: if (curChar == 42) - jjCheckNAddTwoStates(16, 17); + jjCheckNAddTwoStates(21, 22); break; - case 16: + case 21: if ((0xfffffbffffffffffL & l) != 0L) - jjCheckNAddTwoStates(16, 17); + jjCheckNAddTwoStates(21, 22); break; - case 17: + case 22: if (curChar == 42) jjCheckNAddStates(9, 11); break; - case 18: + case 23: if ((0xffff7bffffffffffL & l) != 0L) - jjCheckNAddTwoStates(19, 17); + jjCheckNAddTwoStates(24, 22); break; - case 19: + case 24: if ((0xfffffbffffffffffL & l) != 0L) - jjCheckNAddTwoStates(19, 17); + jjCheckNAddTwoStates(24, 22); break; - case 20: + case 25: if (curChar == 47 && kind > 6) kind = 6; break; - case 21: + case 26: if (curChar == 42) - jjstateSet[jjnewStateCnt++] = 15; + jjstateSet[jjnewStateCnt++] = 20; break; - case 22: + case 27: if (curChar == 42) - jjCheckNAddTwoStates(23, 24); + jjCheckNAddTwoStates(28, 29); break; - case 23: + case 28: if ((0xfffffbffffffffffL & l) != 0L) - jjCheckNAddTwoStates(23, 24); + jjCheckNAddTwoStates(28, 29); break; - case 24: + case 29: if (curChar == 42) jjCheckNAddStates(12, 14); break; - case 25: + case 30: if ((0xffff7bffffffffffL & l) != 0L) - jjCheckNAddTwoStates(26, 24); + jjCheckNAddTwoStates(31, 29); break; - case 26: + case 31: if ((0xfffffbffffffffffL & l) != 0L) - jjCheckNAddTwoStates(26, 24); + jjCheckNAddTwoStates(31, 29); break; - case 27: + case 32: if (curChar == 47 && kind > 7) kind = 7; break; - case 28: + case 33: if ((0x3fe000000000000L & l) == 0L) break; if (kind > 8) kind = 8; jjCheckNAddStates(0, 2); break; - case 29: + case 34: if ((0x3ff000000000000L & l) == 0L) break; if (kind > 8) kind = 8; - jjCheckNAdd(29); + jjCheckNAdd(34); break; - case 30: + case 35: if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(30, 31); + jjCheckNAddTwoStates(35, 36); break; - case 31: + case 36: if (curChar != 46) break; if (kind > 9) kind = 9; - jjCheckNAdd(32); + jjCheckNAdd(37); break; - case 32: + case 37: if ((0x3ff000000000000L & l) == 0L) break; if (kind > 9) kind = 9; - jjCheckNAdd(32); + jjCheckNAdd(37); break; - case 33: + case 38: if (curChar != 48) break; if (kind > 8) kind = 8; - jjCheckNAdd(31); + jjCheckNAdd(36); break; default : break; } @@ -424,11 +485,20 @@ { switch(jjstateSet[--i]) { - case 34: - case 7: + case 39: + case 10: if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddTwoStates(7, 8); + jjCheckNAddTwoStates(10, 11); break; + case 40: + case 6: + if ((0xffffffffefffffffL & l) != 0L) + jjCheckNAddTwoStates(6, 7); + break; + case 0: + if ((0xffffffffefffffffL & l) != 0L) + jjCheckNAddTwoStates(6, 7); + break; case 1: if ((0xffffffffefffffffL & l) != 0L) jjAddStates(15, 16); @@ -437,23 +507,34 @@ if ((0xffffffffefffffffL & l) != 0L) jjAddStates(17, 18); break; - case 11: - jjAddStates(6, 8); + case 8: + if ((0xffffffffefffffffL & l) == 0L) + break; + if (kind > 20) + kind = 20; + jjstateSet[jjnewStateCnt++] = 8; break; + case 12: + if ((0xffffffffefffffffL & l) != 0L) + jjAddStates(19, 20); + break; case 16: - jjCheckNAddTwoStates(16, 17); + jjAddStates(6, 8); break; - case 18: - case 19: - jjCheckNAddTwoStates(19, 17); + case 21: + jjCheckNAddTwoStates(21, 22); break; case 23: - jjCheckNAddTwoStates(23, 24); + case 24: + jjCheckNAddTwoStates(24, 22); break; - case 25: - case 26: - jjCheckNAddTwoStates(26, 24); + case 28: + jjCheckNAddTwoStates(28, 29); break; + case 30: + case 31: + jjCheckNAddTwoStates(31, 29); + break; default : break; } } while(i != startsAt); @@ -466,11 +547,20 @@ { switch(jjstateSet[--i]) { - case 34: - case 7: + case 39: + case 10: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddTwoStates(7, 8); + jjCheckNAddTwoStates(10, 11); break; + case 40: + case 6: + if ((jjbitVec0[i2] & l2) != 0L) + jjCheckNAddTwoStates(6, 7); + break; + case 0: + if ((jjbitVec0[i2] & l2) != 0L) + jjCheckNAddTwoStates(6, 7); + break; case 1: if ((jjbitVec0[i2] & l2) != 0L) jjAddStates(15, 16); @@ -479,28 +569,39 @@ if ((jjbitVec0[i2] & l2) != 0L) jjAddStates(17, 18); break; - case 11: + case 8: + if ((jjbitVec0[i2] & l2) == 0L) + break; + if (kind > 20) + kind = 20; + jjstateSet[jjnewStateCnt++] = 8; + break; + case 12: if ((jjbitVec0[i2] & l2) != 0L) - jjAddStates(6, 8); + jjAddStates(19, 20); break; case 16: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddTwoStates(16, 17); + jjAddStates(6, 8); break; - case 18: - case 19: + case 21: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddTwoStates(19, 17); + jjCheckNAddTwoStates(21, 22); break; case 23: + case 24: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddTwoStates(23, 24); + jjCheckNAddTwoStates(24, 22); break; - case 25: - case 26: + case 28: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddTwoStates(26, 24); + jjCheckNAddTwoStates(28, 29); break; + case 30: + case 31: + if ((jjbitVec0[i2] & l2) != 0L) + jjCheckNAddTwoStates(31, 29); + break; default : break; } } while(i != startsAt); @@ -512,36 +613,37 @@ kind = 0x7fffffff; } ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 34 - (jjnewStateCnt = startsAt))) + if ((i = jjnewStateCnt) == (startsAt = 39 - (jjnewStateCnt = startsAt))) return curPos; try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { return curPos; } } } static final int[] jjnextStates = { - 29, 30, 31, 10, 21, 22, 11, 12, 14, 17, 18, 20, 24, 25, 27, 1, - 2, 4, 5, + 34, 35, 36, 15, 26, 27, 16, 17, 19, 22, 23, 25, 29, 30, 32, 1, + 2, 4, 5, 12, 13, }; /** Token literal values. */ public static final String[] jjstrLiteralImages = { "", null, null, null, null, null, null, null, null, null, "\124\117\120", "\102\117\124\124\117\115", "\141\156\144", "\157\162", "\163\157\155\145", "\157\156\154\171", -"\156\157\164", "\76\75", "\74\75", null, null, "\50", "\51", "\56", "\166\141\154\165\145", }; +"\156\157\164", "\76\75", "\74\75", null, null, null, "\50", "\51", "\56", +"\166\141\154\165\145", }; /** Lexer state names. */ public static final String[] lexStateNames = { "DEFAULT", }; static final long[] jjtoToken = { - 0x1ffff01L, + 0x3ffff01L, }; static final long[] jjtoSkip = { 0xfeL, }; protected SimpleCharStream input_stream; -private final int[] jjrounds = new int[34]; -private final int[] jjstateSet = new int[68]; +private final int[] jjrounds = new int[39]; +private final int[] jjstateSet = new int[78]; protected char curChar; /** Constructor. */ public ManchesterSyntaxParserTokenManager(SimpleCharStream stream){ @@ -568,7 +670,7 @@ { int i; jjround = 0x80000001; - for (i = 34; i-- > 0;) + for (i = 39; i-- > 0;) jjrounds[i] = 0x80000000; } @@ -640,7 +742,7 @@ } try { input_stream.backup(0); - while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L) + while (curChar <= 13 && (0x2400L & (1L << curChar)) != 0L) curChar = input_stream.BeginToken(); } catch (java.io.IOException e1) { continue EOFLoop; } Modified: trunk/components-core/src/main/java/org/dllearner/parser/manchester.jj =================================================================== --- trunk/components-core/src/main/java/org/dllearner/parser/manchester.jj 2011-12-01 11:01:47 UTC (rev 3457) +++ trunk/components-core/src/main/java/org/dllearner/parser/manchester.jj 2011-12-01 11:25:16 UTC (rev 3458) @@ -66,7 +66,10 @@ | < LE: "<=" > // support single quotes and double quotes | < STRING: "\"" (~["\"","\\","\n","\r"])* "\"" | "'" (~["\"","\\","\n","\r"])* "'"> - | < URI: "<" (~[">","\\","\n","\r"])* ">" > +// | < URI: "<" (~[">","\\","\n","\r"])* ">" > + | < URI: (~["<",">","\\","\n","\r"])* ":" (~["<",">","\\","\n","\r"])* > + | < URI_PREFIX: "<" (~[">","\\","\n","\r"])* ":" (~[">","\\","\n","\r"])* ">" > +// | <URI: ["<"] (~[ ">","<", "\"", "{", "}", "^", "\\", "|", "`", "\u0000"-"\u0020"])* ">"? > } Description ClassExpression() : @@ -150,11 +153,13 @@ String s; } { - t=<URI> + // LOOKAHEAD("<") + t=<URI_PREFIX> { // cut "<" and ">" s = t.image; s = s.substring(1, s.length() - 1); return s; } + | t=<URI> { return t.image; } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |