From: <chr...@us...> - 2011-05-24 13:54:49
|
Revision: 2818 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2818&view=rev Author: christinaunger Date: 2011-05-24 13:54:41 +0000 (Tue, 24 May 2011) Log Message: ----------- [tbsl] removed remaining redundancies (now the set of resulting DRSs are checked for duplicates, i.e. DRSs that are equal modulo renaming of referents) Modified Paths: -------------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_Parser.jj trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/DUDE_ParserTokenManager.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/ParseException.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/SimpleCharStream.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/Token.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/dudes/reader/TokenMgrError.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/NERTest.java Added Paths: ----------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Constructor.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParserConstants.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParserTokenManager.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/ParseException.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/SimpleCharStream.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/Token.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/TokenMgrError.java Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java 2011-05-24 08:12:40 UTC (rev 2817) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/converter/DRS2SPARQL_Converter.java 2011-05-24 13:54:41 UTC (rev 2818) @@ -45,6 +45,10 @@ template = new Template(new Query()); usedInts = new ArrayList<Integer>(); } + + public void setSlots(List<Slot> ls) { + slots = ls; + } public boolean isSilent() { return silent; @@ -302,7 +306,7 @@ return query; } - private void redundantEqualRenaming(DRS drs) { + public void redundantEqualRenaming(DRS drs) { Set<Simple_DRS_Condition> equalsConditions = new HashSet<Simple_DRS_Condition>(); for (Simple_DRS_Condition c : drs.getAllSimpleConditions()) { Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS.java 2011-05-24 08:12:40 UTC (rev 2817) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS.java 2011-05-24 13:54:41 UTC (rev 2818) @@ -10,6 +10,7 @@ import org.dllearner.algorithm.tbsl.sem.util.SemanticRepresentation; + public class DRS implements SemanticRepresentation { // A DRS has a set(!) of discourse referents @@ -379,6 +380,8 @@ } } + + @Override public int hashCode() { final int prime = 31; @@ -420,7 +423,8 @@ return false; return true; } - + + public boolean equalsModuloLabel(Object obj) { if (this == obj) return true; @@ -442,5 +446,51 @@ return true; } + public boolean equalsModuloRenaming(DRS drs) { + + DRS drs1 = this.clone(); + DRS drs2 = drs.clone(); + + drs1.setLabel("l1"); drs2.setLabel("l1"); + if (drs1.equals(drs2)) { return true; } + + Set<String> thisVars = drs1.collectVariables(); + Set<String> drsVars = drs2.collectVariables(); + + if (thisVars.size() != drsVars.size()) { + return false; + } + List<String> thisVarsR = new ArrayList<String>(); + List<String> drsVarsR = new ArrayList<String>(); + for (String s : thisVars) { + if (!drsVars.contains(s)) { + thisVarsR.add(s); + } + } + for (String s : drsVars) { + if (!thisVars.contains(s)) { + drsVarsR.add(s); + } + } + + String oldV; String newV; + for (int i=0; i < thisVarsR.size(); i++) { + oldV = thisVarsR.get(i); + newV = drsVarsR.get(i); + drs1.replaceReferent(oldV,newV); + } + + // Hack: If it looks the same, it is the same. + + DRS_Constructor dc = new DRS_Constructor(); + if (dc.construct(drs1.toString()).equals(dc.construct(drs2.toString()))) { + return true; + } + else { + return false; + } + + } + } Added: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Constructor.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Constructor.java (rev 0) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Constructor.java 2011-05-24 13:54:41 UTC (rev 2818) @@ -0,0 +1,25 @@ +package org.dllearner.algorithm.tbsl.sem.drs; + +import java.io.StringReader; + +import org.dllearner.algorithm.tbsl.sem.drs.reader.DRSParser; +import org.dllearner.algorithm.tbsl.sem.drs.reader.ParseException; +import org.dllearner.algorithm.tbsl.sem.drs.DRS; + +public class DRS_Constructor { + + public DRS construct(String string) + { + DRS drs = null; + DRSParser parser = new DRSParser(new StringReader(new String(string))); + parser.ReInit(new StringReader(new String(string))); + try { + drs = parser.DRS(); + } catch (ParseException e) { + e.printStackTrace(); + } + + return drs; + } + +} Property changes on: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/DRS_Constructor.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.java (rev 0) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.java 2011-05-24 13:54:41 UTC (rev 2818) @@ -0,0 +1,879 @@ +/* Generated By:JavaCC: Do not edit this line. DRSParser.java */ +package org.dllearner.algorithm.tbsl.sem.drs.reader; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.dllearner.algorithm.tbsl.sem.drs.*; +import org.dllearner.algorithm.tbsl.sem.util.Label; + +public class DRSParser implements DRSParserConstants { + + /** Main entry point. */ + public static void main(String args[]) throws ParseException { + DRSParser parser = new DRSParser(System.in); + parser.Input(); + } + +/** Root production. */ + final public void Input() throws ParseException { + DRS(); + jj_consume_token(0); + } + +/** DRS */ + final public DRS DRS() throws ParseException { + Set<DiscourseReferent> dr_set = null; + Set<DRS_Condition> conditions = null; + DRS drs; + Token label = null; + if (jj_2_1(2)) { + label = jj_consume_token(LABEL); + jj_consume_token(1); + } else { + ; + } + jj_consume_token(2); + if (jj_2_2(2)) { + dr_set = DR_Set(); + } else { + ; + } + jj_consume_token(3); + if (jj_2_3(2)) { + conditions = Condition_List(); + } else { + ; + } + jj_consume_token(4); + if (dr_set == null) + { + dr_set = new HashSet<DiscourseReferent>(); + } + drs = new DRS(); + if (label != null) + { + drs.setLabel(label.toString()); + } + drs.setDiscourseReferents(dr_set); + if (conditions != null) + { + drs.setDRSConditions(conditions); + } + {if (true) return drs;} + throw new Error("Missing return statement in function"); + } + +/** DR_Set*/ + final public Set<DiscourseReferent> DR_Set() throws ParseException { + Token dr; + Set<DiscourseReferent> dr_set=null; + dr = dr(); + if (jj_2_4(2)) { + jj_consume_token(5); + dr_set = DR_Set(); + } else { + ; + } + if (dr_set == null) + { + dr_set= new HashSet<DiscourseReferent>(); + } + if (dr.toString().startsWith("?")) + { + dr_set.add(new DiscourseReferent(dr.toString().substring(1),true,false)); + } + else if (dr.toString().startsWith("!")) + { + dr_set.add(new DiscourseReferent(dr.toString().substring(1),false,true)); + } + else + { + dr_set.add(new DiscourseReferent(dr.toString(),false,false)); + } + {if (true) return dr_set;} + throw new Error("Missing return statement in function"); + } + + final public Set<DRS_Condition> Condition_List() throws ParseException { + DRS_Condition condition= null; + Set<DRS_Condition> conditions = null; + condition = Condition(); + if (jj_2_5(2)) { + jj_consume_token(5); + conditions = Condition_List(); + } else { + ; + } + if (conditions == null) + { + conditions = new HashSet<DRS_Condition>(); + } + conditions.add(condition); + {if (true) return conditions;} + throw new Error("Missing return statement in function"); + } + + final public DRS_Condition Condition() throws ParseException { + List<DiscourseReferent> dr_list; + Token dr1; + Token dr2; + Token dr; + Token predicate; + Token quantifier; + DRS drs1; + DRS drs2; + if (jj_2_15(2)) { + predicate = jj_consume_token(WORD); + jj_consume_token(6); + dr_list = DR_List(); + jj_consume_token(7); + Simple_DRS_Condition condition; + + condition = new Simple_DRS_Condition(); + condition.setPredicate(predicate.toString()); + condition.setArguments(dr_list); + {if (true) return condition;} + } else if (jj_2_16(2)) { + dr1 = dr(); + jj_consume_token(8); + dr2 = dr(); + Simple_DRS_Condition condition; + + condition = new Simple_DRS_Condition(); + condition.setPredicate("equal"); + condition.addArgument(new DiscourseReferent(dr1.toString())); + condition.addArgument(new DiscourseReferent(dr2.toString())); + {if (true) return condition;} + } else if (jj_2_17(2)) { + jj_consume_token(9); + drs1 = DRS(); + Negated_DRS drs = new Negated_DRS(); + drs.setDRS(drs1); + {if (true) return drs;} + } else if (jj_2_18(2)) { + drs1 = DRS(); + if (jj_2_6(2)) { + quantifier = jj_consume_token(EVERY); + } else if (jj_2_7(2)) { + quantifier = jj_consume_token(SOME); + } else if (jj_2_8(2)) { + quantifier = jj_consume_token(AFEW); + } else if (jj_2_9(2)) { + quantifier = jj_consume_token(MOST); + } else if (jj_2_10(2)) { + quantifier = jj_consume_token(THEMOST); + } else if (jj_2_11(2)) { + quantifier = jj_consume_token(THELEAST); + } else if (jj_2_12(2)) { + quantifier = jj_consume_token(HOWMANY); + } else if (jj_2_13(2)) { + quantifier = jj_consume_token(MANY); + } else if (jj_2_14(2)) { + quantifier = jj_consume_token(NO); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + dr = jj_consume_token(WORD); + drs2 = DRS(); + Complex_DRS_Condition drs; + drs = new Complex_DRS_Condition(); + drs.setRestrictor(drs1); + drs.setScope(drs2); + drs.setReferent(new DiscourseReferent(dr.toString())); + + if (quantifier.toString().equals("EVERY")) {drs.setQuantifier(DRS_Quantifier.EVERY);} + if (quantifier.toString().equals("SOME")) {drs.setQuantifier(DRS_Quantifier.SOME);} + if (quantifier.toString().equals("MOST")) {drs.setQuantifier(DRS_Quantifier.MOST);} + if (quantifier.toString().equals("THEMOST")) {drs.setQuantifier(DRS_Quantifier.THE_MOST);} + if (quantifier.toString().equals("THELEAST")) {drs.setQuantifier(DRS_Quantifier.THE_LEAST);} + if (quantifier.toString().equals("AFEW")) {drs.setQuantifier(DRS_Quantifier.FEW);} + if (quantifier.toString().equals("MANY")) {drs.setQuantifier(DRS_Quantifier.MANY);} + if (quantifier.toString().equals("HOWMANY")) {drs.setQuantifier(DRS_Quantifier.HOW_MANY);} + if (quantifier.toString().equals("NO")) {drs.setQuantifier(DRS_Quantifier.NO);} + + {if (true) return drs;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** DR_List*/ + final public List<DiscourseReferent> DR_List() throws ParseException { + Token dr; + List<DiscourseReferent> dr_list=null; + dr = dr(); + if (jj_2_19(2)) { + jj_consume_token(5); + dr_list = DR_List(); + } else { + ; + } + if (dr_list == null) + { + dr_list= new ArrayList<DiscourseReferent>(); + } + + if (dr.toString().startsWith("?")) { + dr_list.add(0,new DiscourseReferent(dr.toString().substring(1),true,false)); + } + else if (dr.toString().startsWith("?")) { + dr_list.add(0,new DiscourseReferent(dr.toString().substring(1),false,true)); + } + else { + dr_list.add(0,new DiscourseReferent(dr.toString(),false,false)); + } + + {if (true) return dr_list;} + throw new Error("Missing return statement in function"); + } + + final public Token dr() throws ParseException { + Token t; + if (jj_2_20(2)) { + t = jj_consume_token(WORD); + } else if (jj_2_21(2)) { + t = jj_consume_token(DR); + } else if (jj_2_22(2)) { + t = jj_consume_token(QUOTED_STRING); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return t;} + throw new Error("Missing return statement in function"); + } + + private boolean jj_2_1(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(0, xla); } + } + + private boolean jj_2_2(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_2(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1, xla); } + } + + private boolean jj_2_3(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_3(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(2, xla); } + } + + private boolean jj_2_4(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_4(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(3, xla); } + } + + private boolean jj_2_5(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_5(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(4, xla); } + } + + private boolean jj_2_6(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_6(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(5, xla); } + } + + private boolean jj_2_7(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_7(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(6, xla); } + } + + private boolean jj_2_8(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_8(); } + catch(LookaheadSuccess ls) { return true; } + 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_2_10(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_10(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(9, xla); } + } + + private boolean jj_2_11(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_11(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(10, xla); } + } + + private boolean jj_2_12(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_12(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(11, xla); } + } + + private boolean jj_2_13(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_13(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(12, xla); } + } + + private boolean jj_2_14(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_14(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(13, xla); } + } + + private boolean jj_2_15(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_15(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(14, xla); } + } + + private boolean jj_2_16(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_16(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(15, xla); } + } + + private boolean jj_2_17(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_17(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(16, xla); } + } + + private boolean jj_2_18(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_18(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(17, xla); } + } + + private boolean jj_2_19(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_19(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(18, xla); } + } + + private boolean jj_2_20(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_20(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(19, xla); } + } + + private boolean jj_2_21(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_21(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(20, xla); } + } + + private boolean jj_2_22(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_22(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(21, xla); } + } + + private boolean jj_3_2() { + if (jj_3R_1()) return true; + return false; + } + + private boolean jj_3_18() { + if (jj_3R_4()) return true; + return false; + } + + private boolean jj_3_10() { + if (jj_scan_token(THEMOST)) return true; + return false; + } + + private boolean jj_3_19() { + if (jj_scan_token(5)) return true; + if (jj_3R_5()) return true; + return false; + } + + private boolean jj_3_17() { + if (jj_scan_token(9)) return true; + if (jj_3R_4()) return true; + return false; + } + + private boolean jj_3_13() { + if (jj_scan_token(MANY)) return true; + return false; + } + + private boolean jj_3R_2() { + if (jj_3R_6()) return true; + return false; + } + + private boolean jj_3_7() { + if (jj_scan_token(SOME)) return true; + return false; + } + + private boolean jj_3R_5() { + if (jj_3R_3()) return true; + return false; + } + + private boolean jj_3_22() { + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_3() { + if (jj_3R_2()) return true; + return false; + } + + private boolean jj_3_1() { + if (jj_scan_token(LABEL)) return true; + if (jj_scan_token(1)) return true; + return false; + } + + private boolean jj_3R_4() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_1()) jj_scanpos = xsp; + if (jj_scan_token(2)) return true; + xsp = jj_scanpos; + if (jj_3_2()) jj_scanpos = xsp; + if (jj_scan_token(3)) return true; + return false; + } + + private boolean jj_3_9() { + if (jj_scan_token(MOST)) return true; + return false; + } + + private boolean jj_3_16() { + if (jj_3R_3()) return true; + if (jj_scan_token(8)) return true; + return false; + } + + private boolean jj_3_11() { + if (jj_scan_token(THELEAST)) return true; + return false; + } + + private boolean jj_3_21() { + if (jj_scan_token(DR)) return true; + return false; + } + + private boolean jj_3_4() { + if (jj_scan_token(5)) return true; + if (jj_3R_1()) return true; + return false; + } + + private boolean jj_3_12() { + if (jj_scan_token(HOWMANY)) return true; + return false; + } + + private boolean jj_3R_6() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_15()) { + jj_scanpos = xsp; + if (jj_3_16()) { + jj_scanpos = xsp; + if (jj_3_17()) { + jj_scanpos = xsp; + if (jj_3_18()) return true; + } + } + } + return false; + } + + private boolean jj_3_15() { + if (jj_scan_token(WORD)) return true; + if (jj_scan_token(6)) return true; + return false; + } + + private boolean jj_3_6() { + if (jj_scan_token(EVERY)) return true; + return false; + } + + private boolean jj_3_5() { + if (jj_scan_token(5)) return true; + if (jj_3R_2()) return true; + return false; + } + + private boolean jj_3_14() { + if (jj_scan_token(NO)) return true; + return false; + } + + private boolean jj_3_20() { + if (jj_scan_token(WORD)) return true; + return false; + } + + private boolean jj_3R_3() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_20()) { + jj_scanpos = xsp; + if (jj_3_21()) { + jj_scanpos = xsp; + if (jj_3_22()) return true; + } + } + return false; + } + + private boolean jj_3R_1() { + if (jj_3R_3()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_4()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_8() { + if (jj_scan_token(AFEW)) return true; + return false; + } + + /** Generated Token Manager. */ + public DRSParserTokenManager token_source; + SimpleCharStream jj_input_stream; + /** Current token. */ + public Token token; + /** Next token. */ + public Token jj_nt; + private int jj_ntk; + private Token jj_scanpos, jj_lastpos; + private int jj_la; + private int jj_gen; + final private int[] jj_la1 = new int[0]; + static private int[] jj_la1_0; + static { + jj_la1_init_0(); + } + private static void jj_la1_init_0() { + jj_la1_0 = new int[] {}; + } + final private JJCalls[] jj_2_rtns = new JJCalls[22]; + private boolean jj_rescan = false; + private int jj_gc = 0; + + /** Constructor with InputStream. */ + public DRSParser(java.io.InputStream stream) { + this(stream, null); + } + /** Constructor with InputStream and supplied encoding */ + public DRSParser(java.io.InputStream stream, String encoding) { + try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } + token_source = new DRSParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 0; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + /** Reinitialise. */ + public void ReInit(java.io.InputStream stream) { + ReInit(stream, null); + } + /** Reinitialise. */ + public void ReInit(java.io.InputStream stream, String encoding) { + try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } + token_source.ReInit(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 0; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + /** Constructor. */ + public DRSParser(java.io.Reader stream) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new DRSParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 0; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + /** Reinitialise. */ + public void ReInit(java.io.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 < 0; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + /** Constructor with generated Token Manager. */ + public DRSParser(DRSParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 0; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + /** Reinitialise. */ + public void ReInit(DRSParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 0; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + private Token jj_consume_token(int kind) throws ParseException { + Token oldToken; + if ((oldToken = token).next != null) token = token.next; + else token = token.next = token_source.getNextToken(); + jj_ntk = -1; + if (token.kind == kind) { + jj_gen++; + if (++jj_gc > 100) { + jj_gc = 0; + for (int i = 0; i < jj_2_rtns.length; i++) { + JJCalls c = jj_2_rtns[i]; + while (c != null) { + if (c.gen < jj_gen) c.first = null; + c = c.next; + } + } + } + return token; + } + token = oldToken; + jj_kind = kind; + throw generateParseException(); + } + + static private final class LookaheadSuccess extends java.lang.Error { } + final private LookaheadSuccess jj_ls = new LookaheadSuccess(); + private boolean jj_scan_token(int kind) { + if (jj_scanpos == jj_lastpos) { + jj_la--; + if (jj_scanpos.next == null) { + jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); + } else { + jj_lastpos = jj_scanpos = jj_scanpos.next; + } + } else { + jj_scanpos = jj_scanpos.next; + } + if (jj_rescan) { + int i = 0; Token tok = token; + while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } + if (tok != null) jj_add_error_token(kind, i); + } + if (jj_scanpos.kind != kind) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls; + return false; + } + + +/** Get the next Token. */ + final public Token getNextToken() { + if (token.next != null) token = token.next; + else token = token.next = token_source.getNextToken(); + jj_ntk = -1; + jj_gen++; + return token; + } + +/** Get the specific Token. */ + final public 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; + } + + private int jj_ntk() { + if ((jj_nt=token.next) == null) + return (jj_ntk = (token.next=token_source.getNextToken()).kind); + else + return (jj_ntk = jj_nt.kind); + } + + private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>(); + private int[] jj_expentry; + private int jj_kind = -1; + private int[] jj_lasttokens = new int[100]; + private int jj_endpos; + + private void jj_add_error_token(int kind, int pos) { + if (pos >= 100) return; + if (pos == jj_endpos + 1) { + jj_lasttokens[jj_endpos++] = kind; + } else if (jj_endpos != 0) { + jj_expentry = new int[jj_endpos]; + for (int i = 0; i < jj_endpos; i++) { + jj_expentry[i] = jj_lasttokens[i]; + } + jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) { + int[] oldentry = (int[])(it.next()); + if (oldentry.length == jj_expentry.length) { + for (int i = 0; i < jj_expentry.length; i++) { + if (oldentry[i] != jj_expentry[i]) { + continue jj_entries_loop; + } + } + jj_expentries.add(jj_expentry); + break jj_entries_loop; + } + } + if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; + } + } + + /** Generate ParseException. */ + public ParseException generateParseException() { + jj_expentries.clear(); + boolean[] la1tokens = new boolean[27]; + if (jj_kind >= 0) { + la1tokens[jj_kind] = true; + jj_kind = -1; + } + for (int i = 0; i < 0; 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 < 27; i++) { + if (la1tokens[i]) { + jj_expentry = new int[1]; + jj_expentry[0] = i; + jj_expentries.add(jj_expentry); + } + } + jj_endpos = 0; + jj_rescan_token(); + jj_add_error_token(0, 0); + int[][] exptokseq = new int[jj_expentries.size()][]; + for (int i = 0; i < jj_expentries.size(); i++) { + exptokseq[i] = jj_expentries.get(i); + } + return new ParseException(token, exptokseq, tokenImage); + } + + /** Enable tracing. */ + final public void enable_tracing() { + } + + /** Disable tracing. */ + final public void disable_tracing() { + } + + private void jj_rescan_token() { + jj_rescan = true; + for (int i = 0; i < 22; i++) { + try { + JJCalls p = jj_2_rtns[i]; + do { + if (p.gen > jj_gen) { + jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; + switch (i) { + case 0: jj_3_1(); break; + case 1: jj_3_2(); break; + case 2: jj_3_3(); break; + case 3: jj_3_4(); break; + case 4: jj_3_5(); break; + case 5: jj_3_6(); break; + case 6: jj_3_7(); break; + case 7: jj_3_8(); break; + case 8: jj_3_9(); break; + case 9: jj_3_10(); break; + case 10: jj_3_11(); break; + case 11: jj_3_12(); break; + case 12: jj_3_13(); break; + case 13: jj_3_14(); break; + case 14: jj_3_15(); break; + case 15: jj_3_16(); break; + case 16: jj_3_17(); break; + case 17: jj_3_18(); break; + case 18: jj_3_19(); break; + case 19: jj_3_20(); break; + case 20: jj_3_21(); break; + case 21: jj_3_22(); break; + } + } + p = p.next; + } while (p != null); + } catch(LookaheadSuccess ls) { } + } + jj_rescan = false; + } + + private void jj_save(int index, int xla) { + JJCalls p = jj_2_rtns[index]; + while (p.gen > jj_gen) { + if (p.next == null) { p = p.next = new JJCalls(); break; } + p = p.next; + } + p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; + } + + static final class JJCalls { + int gen; + Token first; + int arg; + JJCalls next; + } + +} Added: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj (rev 0) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj 2011-05-24 13:54:41 UTC (rev 2818) @@ -0,0 +1,259 @@ + +options { + LOOKAHEAD = 2; + CHOICE_AMBIGUITY_CHECK = 2; + OTHER_AMBIGUITY_CHECK = 1; + STATIC = false; + DEBUG_PARSER = false; + DEBUG_LOOKAHEAD = false; + DEBUG_TOKEN_MANAGER = false; + ERROR_REPORTING = true; + JAVA_UNICODE_ESCAPE = false; + UNICODE_INPUT = false; + IGNORE_CASE = false; + USER_TOKEN_MANAGER = false; + USER_CHAR_STREAM = false; + BUILD_PARSER = true; + BUILD_TOKEN_MANAGER = true; + SANITY_CHECK = true; + FORCE_LA_CHECK = false; +} + +PARSER_BEGIN(DRSParser) + +package org.dllearner.algorithm.tbsl.sem.drs.reader; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.dllearner.algorithm.tbsl.sem.drs.*; +import org.dllearner.algorithm.tbsl.sem.util.Label; + +public class DRSParser { + + /** Main entry point. */ + public static void main(String args[]) throws ParseException { + DRSParser parser = new DRSParser(System.in); + parser.Input(); + } + +} + +PARSER_END(DRSParser) + +/** Root production. */ +void Input() : +{} +{ + DRS() <EOF> +} + +/** DRS */ +DRS DRS() : +{ + Set<DiscourseReferent> dr_set = null; + Set<DRS_Condition> conditions = null; + DRS drs; + Token label = null; + +} +{ + (label=<LABEL> ":")? "[" (dr_set=DR_Set())? "|" (conditions=Condition_List())? "]" + { + if (dr_set == null) + { + dr_set = new HashSet<DiscourseReferent>(); + } + drs = new DRS(); + if (label != null) + { + drs.setLabel(label.toString()); + } + drs.setDiscourseReferents(dr_set); + if (conditions != null) + { + drs.setDRSConditions(conditions); + } + return drs; + } +} + +/** DR_Set*/ +Set<DiscourseReferent> DR_Set() : +{ + Token dr; + Set<DiscourseReferent> dr_set=null; +} +{ + dr = dr() ("," dr_set=DR_Set())? + { + if (dr_set == null) + { + dr_set= new HashSet<DiscourseReferent>(); + } + if (dr.toString().startsWith("?")) + { + dr_set.add(new DiscourseReferent(dr.toString().substring(1),true,false)); + } + else if (dr.toString().startsWith("!")) + { + dr_set.add(new DiscourseReferent(dr.toString().substring(1),false,true)); + } + else + { + dr_set.add(new DiscourseReferent(dr.toString(),false,false)); + } + return dr_set; + } +} + +Set<DRS_Condition> Condition_List() : +{ + DRS_Condition condition= null; + Set<DRS_Condition> conditions = null; +} +{ + condition=Condition() ("," conditions=Condition_List())? + { + if (conditions == null) + { + conditions = new HashSet<DRS_Condition>(); + } + conditions.add(condition); + return conditions; + } +} + +DRS_Condition Condition() : +{ + List<DiscourseReferent> dr_list; + Token dr1; + Token dr2; + Token dr; + Token predicate; + Token quantifier; + DRS drs1; + DRS drs2; +} +{ + + predicate=<WORD> "(" dr_list=DR_List() ")" + { + Simple_DRS_Condition condition; + + condition = new Simple_DRS_Condition(); + condition.setPredicate(predicate.toString()); + condition.setArguments(dr_list); + return condition; + } + + | + + dr1 = dr() "=" dr2 = dr() + { + Simple_DRS_Condition condition; + + condition = new Simple_DRS_Condition(); + condition.setPredicate("equal"); + condition.addArgument(new DiscourseReferent(dr1.toString())); + condition.addArgument(new DiscourseReferent(dr2.toString())); + return condition; + } + + | + + "NOT" drs1=DRS() + { + Negated_DRS drs = new Negated_DRS(); + drs.setDRS(drs1); + return drs; + } + + | + + drs1=DRS() (quantifier=<EVERY> | quantifier=<SOME> | quantifier=<AFEW> | quantifier=<MOST> | quantifier=<THEMOST> | quantifier=<THELEAST> | + quantifier=<HOWMANY> | quantifier=<MANY> | quantifier=<NO>) dr= <WORD> drs2=DRS() + { + Complex_DRS_Condition drs; + drs = new Complex_DRS_Condition(); + drs.setRestrictor(drs1); + drs.setScope(drs2); + drs.setReferent(new DiscourseReferent(dr.toString())); + + if (quantifier.toString().equals("EVERY")) {drs.setQuantifier(DRS_Quantifier.EVERY);} + if (quantifier.toString().equals("SOME")) {drs.setQuantifier(DRS_Quantifier.SOME);} + if (quantifier.toString().equals("MOST")) {drs.setQuantifier(DRS_Quantifier.MOST);} + if (quantifier.toString().equals("THEMOST")) {drs.setQuantifier(DRS_Quantifier.THE_MOST);} + if (quantifier.toString().equals("THELEAST")) {drs.setQuantifier(DRS_Quantifier.THE_LEAST);} + if (quantifier.toString().equals("AFEW")) {drs.setQuantifier(DRS_Quantifier.FEW);} + if (quantifier.toString().equals("MANY")) {drs.setQuantifier(DRS_Quantifier.MANY);} + if (quantifier.toString().equals("HOWMANY")) {drs.setQuantifier(DRS_Quantifier.HOW_MANY);} + if (quantifier.toString().equals("NO")) {drs.setQuantifier(DRS_Quantifier.NO);} + + return drs; + + } +} + +/** DR_List*/ +List<DiscourseReferent> DR_List() : +{ + Token dr; + List<DiscourseReferent> dr_list=null; +} +{ + dr = dr() ("," dr_list=DR_List())? + { + if (dr_list == null) + { + dr_list= new ArrayList<DiscourseReferent>(); + } + + if (dr.toString().startsWith("?")) { + dr_list.add(0,new DiscourseReferent(dr.toString().substring(1),true,false)); + } + else if (dr.toString().startsWith("?")) { + dr_list.add(0,new DiscourseReferent(dr.toString().substring(1),false,true)); + } + else { + dr_list.add(0,new DiscourseReferent(dr.toString(),false,false)); + } + + return dr_list; + } +} + + +TOKEN: {<EVERY: "EVERY">} + +TOKEN: {<MOST: "MOST">} + +TOKEN: {<SOME: "SOME">} + +TOKEN: {<THEMOST: "THEMOST">} + +TOKEN: {<THELEAST: "THELEAST">} + +TOKEN: {<AFEW: "AFEW">} + +TOKEN: {<MANY: "MANY">} + +TOKEN: {<NO: "NO">} + +TOKEN: {<HOWMANY: "HOWMANY">} + +TOKEN: {<LABEL: "l"(["0"-"9"])+>} + +TOKEN: {<WORD: (["a"-"z","A"-"Z","_",".","#",":"])+>} + +TOKEN: {<DR: (["?","!"])?(["a"-"z","A"-"Z","0"-"9","."])+>} + +TOKEN: {<QUOTED_STRING: "\'" (~["\'"])+ "\'" >} + +Token dr() : { Token t; }{ (t=<WORD> | t=<DR> | t=<QUOTED_STRING>) { return t; } } + +SKIP : { " " | "\t" | "\n" | "\r" } + + Property changes on: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParser.jj ___________________________________________________________________ Added: svn:executable + * Added: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParserConstants.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParserConstants.java (rev 0) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParserConstants.java 2011-05-24 13:54:41 UTC (rev 2818) @@ -0,0 +1,74 @@ +/* Generated By:JavaCC: Do not edit this line. DRSParserConstants.java */ +package org.dllearner.algorithm.tbsl.sem.drs.reader; + + +/** + * Token literal values and constants. + * Generated by org.javacc.parser.OtherFilesGen#start() + */ +public interface DRSParserConstants { + + /** End of File. */ + int EOF = 0; + /** RegularExpression Id. */ + int EVERY = 10; + /** RegularExpression Id. */ + int MOST = 11; + /** RegularExpression Id. */ + int SOME = 12; + /** RegularExpression Id. */ + int THEMOST = 13; + /** RegularExpression Id. */ + int THELEAST = 14; + /** RegularExpression Id. */ + int AFEW = 15; + /** RegularExpression Id. */ + int MANY = 16; + /** RegularExpression Id. */ + int NO = 17; + /** RegularExpression Id. */ + int HOWMANY = 18; + /** RegularExpression Id. */ + int LABEL = 19; + /** RegularExpression Id. */ + int WORD = 20; + /** RegularExpression Id. */ + int DR = 21; + /** RegularExpression Id. */ + int QUOTED_STRING = 22; + + /** Lexical state. */ + int DEFAULT = 0; + + /** Literal token values. */ + String[] tokenImage = { + "<EOF>", + "\":\"", + "\"[\"", + "\"|\"", + "\"]\"", + "\",\"", + "\"(\"", + "\")\"", + "\"=\"", + "\"NOT\"", + "\"EVERY\"", + "\"MOST\"", + "\"SOME\"", + "\"THEMOST\"", + "\"THELEAST\"", + "\"AFEW\"", + "\"MANY\"", + "\"NO\"", + "\"HOWMANY\"", + "<LABEL>", + "<WORD>", + "<DR>", + "<QUOTED_STRING>", + "\" \"", + "\"\\t\"", + "\"\\n\"", + "\"\\r\"", + }; + +} Added: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParserTokenManager.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParserTokenManager.java (rev 0) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/sem/drs/reader/DRSParserTokenManager.java 2011-05-24 13:54:41 UTC (rev 2818) @@ -0,0 +1,710 @@ +/* Generated By:JavaCC: Do not edit this line. DRSParserTokenManager.java */ +package org.dllearner.algorithm.tbsl.sem.drs.reader; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.dllearner.algorithm.tbsl.sem.drs.*; +import org.dllearner.algorithm.tbsl.sem.util.Label; + +/** Token Manager. */ +public class DRSParserTokenManager implements DRSParserConstants +{ + + /** Debug output. */ + public java.io.PrintStream debugStream = System.out; + /** Set debug output. */ + public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } +private final int jjStopStringLiteralDfa_0(int pos, long active0) +{ + switch (pos) + { + case 0: + if ((active0 & 0x2L) != 0L) + return 2; + if ((active0 & 0x7fe00L) != 0L) + { + jjmatchedKind = 20; + return 8; + } + return -1; + case 1: + if ((active0 & 0x5fc00L) != 0L) + { + if (jjmatchedPos != 1) + { + jjmatchedKind = 20; + jjmatchedPos = 1; + } + return 8; + } + if ((active0 & 0x20200L) != 0L) + return 8; + return -1; + case 2: + if ((active0 & 0x5fc00L) != 0L) + { + jjmatchedKind = 20; + jjmatchedPos = 2; + return 8; + } + if ((active0 & 0x200L) != 0L) + return 8; + return -1; + case 3: + if ((active0 & 0x46400L) != 0L) + { + jjmatchedKind = 20; + jjmatchedPos = 3; + return 8; + } + if ((active0 & 0x19800L) != 0L) + return 8; + return -1; + case 4: + if ((active0 & 0x46000L) != 0L) + { + jjmatchedKind = 20; + jjmatchedPos = 4; + return 8; + } + if ((active0 & 0x400L) != 0L) + return 8; + return -1; + case 5: + if ((active0 & 0x46000L) != 0L) + { + jjmatchedKind = 20; + jjmatchedPos = 5; + return 8; + } + return -1; + case 6: + if ((active0 & 0x4000L) != 0L) + { + jjmatchedKind = 20; + jjmatchedPos = 6; + return 8; + } + if ((active0 & 0x42000L) != 0L) + return 8; + return -1; + default : + return -1; + } +} +private final int jjStartNfa_0(int pos, long active0) +{ + return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1); +} +private int jjStopAtPos(int pos, int kind) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + return pos + 1; +} +private int jjMoveStringLiteralDfa0_0() +{ + switch(curChar) + { + case 40: + return jjStopAtPos(0, 6); + case 41: + return jjStopAtPos(0, 7); + case 44: + return jjStopAtPos(0, 5); + case 58: + return jjStartNfaWithStates_0(0, 1, 2); + case 61: + return jjStopAtPos(0, 8); + case 65: + return jjMoveStringLiteralDfa1_0(0x8000L); + case 69: + return jjMoveStringLiteralDfa1_0(0x400L); + case 72: + return jjMoveStringLiteralDfa1_0(0x40000L); + case 77: + return jjMoveStringLiteralDfa1_0(0x10800L); + case 78: + return jjMoveStringLiteralDfa1_0(0x20200L); + case 83: + return jjMoveStringLiteralDfa1_0(0x1000L); + case 84: + return jjMoveStringLiteralDfa1_0(0x6000L); + case 91: + return jjStopAtPos(0, 2); + case 93: + return jjStopAtPos(0, 4); + case 124: + return jjStopAtPos(0, 3); + default : + return jjMoveNfa_0(0, 0); + } +} +private int jjMoveStringLiteralDfa1_0(long active0) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(0, active0); + return 1; + } + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa2_0(active0, 0x10000L); + case 70: + return jjMoveStringLiteralDfa2_0(active0, 0x8000L); + case 72: + return jjMoveStringLiteralDfa2_0(active0, 0x6000L); + case 79: + if ((active0 & 0x20000L) != 0L) + { + jjmatchedKind = 17; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x41a00L); + case 86: + return jjMoveStringLiteralDfa2_0(active0, 0x400L); + default : + break; + } + return jjStartNfa_0(0, active0); +} +private int jjMoveStringLiteralDfa2_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(0, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(1, active0); + return 2; + } + switch(curChar) + { + case 69: + return jjMoveStringLiteralDfa3_0(active0, 0xe400L); + case 77: + return jjMoveStringLiteralDfa3_0(active0, 0x1000L); + case 78: + return jjMoveStringLiteralDfa3_0(active0, 0x10000L); + case 83: + return jjMoveStringLiteralDfa3_0(active0, 0x800L); + case 84: + if ((active0 & 0x200L) != 0L) + return jjStartNfaWithStates_0(2, 9, 8); + break; + case 87: + return jjMoveStringLiteralDfa3_0(active0, 0x40000L); + default : + break; + } + return jjStartNfa_0(1, active0); +} +private int jjMoveStringLiteralDfa3_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(1, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(2, active0); + return 3; + } + switch(curChar) + { + case 69: + if ((active0 & 0x1000L) != 0L) + return jjStartNfaWithStates_0(3, 12, 8); + break; + case 76: + return jjMoveStringLiteralDfa4_0(active0, 0x4000L); + case 77: + return jjMoveStringLiteralDfa4_0(active0, 0x42000L); + case 82: + return jjMoveStringLiteralDfa4_0(active0, 0x400L); + case 84: + if ((active0 & 0x800L) != 0L) + return jjStartNfaWithStates_0(3, 11, 8); + break; + case 87: + if ((active0 & 0x8000L) != 0L) + return jjStartNfaWithStates_0(3, 15, 8); + break; + case 89: + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_0(3, 16, 8); + break; + default : + break; + } + return jjStartNfa_0(2, active0); +} +private int jjMoveStringLiteralDfa4_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(2, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(3, active0); + return 4; + } + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa5_0(active0, 0x40000L); + case 69: + return jjMoveStringLiteralDfa5_0(active0, 0x4000L); + case 79: + return jjMoveStringLiteralDfa5_0(active0, 0x2000L); + case 89: + if ((active0 & 0x400L) != 0L) + return jjStartNfaWithStates_0(4, 10, 8); + break; + default : + break; + } + return jjStartNfa_0(3, active0); +} +private int jjMoveStringLiteralDfa5_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(3, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(4, active0); + return 5; + } + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa6_0(active0, 0x4000L); + case 78: + return jjMoveStringLiteralDfa6_0(active0, 0x40000L); + case 83: + return jjMoveStringLiteralDfa6_0(active0, 0x2000L); + default : + break; + } + return jjStartNfa_0(4, active0); +} +private int jjMoveStringLiteralDfa6_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(4, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(5, active0); + return 6; + } + switch(curChar) + { + case 83: + return jjMoveStringLiteralDfa7_0(active0, 0x4000L); + case 84: + if ((active0 & 0x2000L) != 0L) + return jjStartNfaWithStates_0(6, 13, 8); + break; + case 89: + if ((active0 & 0x40000L) != 0L) + return jjStartNfaWithStates_0(6, 18, 8); + break; + default : + break; + } + return jjStartNfa_0(5, active0); +} +private int jjMoveStringLiteralDfa7_0(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_0(5, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(6, active0); + return 7; + } + switch(curChar) + { + case 84: + if ((active0 & 0x4000L) != 0L) + return jjStartNfaWithStates_0(7, 14, 8); + break; + default : + break; + } + return jjStartNfa_0(6, active0); +} +private int jjStartNfaWithStates_0(int pos, int kind, int state) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return pos + 1; } + return jjMoveNfa_0(state, pos + 1); +} +static final long[] jjbitVec0 = { + 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +private int jjMoveNfa_0(int startState, int curPos) +{ + int startsAt = 0; + jjnewStateCnt = 8; + int i = 1; + jjstateSet[0] = startState; + int kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + long l = 1L << curChar; + do + { + switch(jjstateSet[--i]) + { + case 0: + if ((0x3ff400000000000L & l) != 0L) + { + if (kind > 21) + kind = 21; + jjCheckNAdd(4); + } + else if (curChar == 39) + jjCheckNAdd(6); + else if ((0x8000000200000000L & l) != 0L) + jjCheckNAdd(4); + if ((0x400400800000000L & l) != 0L) + { + if (kind > 20) + kind = 20; + jjCheckNAdd(2); + } + break; + case 8: + if ((0x3ff400000000000L & l) != 0L) + { + if (kind > 21) + kind = 21; + jjCheckNAdd(4); + } + if ((0x400400800000000L & l) != 0L) + { + if (kind > 20) + kind = 20; + jjCheckNAdd(2); + } + break; + case 1: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 19) + kind = 19; + jjstateSet[jjnewStateCnt++] = 1; + break; + case 2: + if ((0x400400800000000L & l) == 0L) + break; + if (kind > 20) + kind = 20; + jjCheckNAdd(2); + break; + case 3: + if ((0x8000000200000000L & l) != 0L) + jjCheckNAdd(4); + break; + case 4: + if ((0x3ff400000000000L & l) == 0L) + break; + if (kind > 21) + kind = 21; + jjCheckNAdd(4); + break; + case 5: + if (curChar == 39) + jjCheckNAdd(6); + break; + case 6: + if ((0xffffff7fffffffffL & l) != 0L) + jjCheckNAddTwoStates(6, 7); + break; + case 7: + if (curChar == 39 && kind > 22) + kind = 22; + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + do + { + switch(jjstateSet[--i]) + { + case 0: + if ((0x7fffffe87fffffeL & l) != 0L) + { + if (kind > 20) + kind = 20; + jjCheckNAdd(2); + } + if ((0x7fffffe07fffffeL & l) != 0L) + { + if (kind > 21) + kind = 21; + jjCheckNAdd(4); + } + if (curChar == 108) + jjstateSet[jjnewStateCnt++] = 1; + break; + case 8: + if ((0x7fffffe87fffffeL & l) != 0L) + { + if (kind > 20) + kind = 20; + jjCheckNAdd(2); + } + if ((0x7fffffe07fffffeL & l) != 0L) + { + if (kind > 21) + kind = 21; + jjCheckNAdd(4); + } + break; + case 2: + if ((0x7fffffe87fffffeL & l) == 0L) + break; + if (kind > 20) + kind = 20; + jjCheckNAdd(2); + break; + case 4: + if ((0x7fffffe07fffffeL & l) == 0L) + break; + if (kind > 21) + kind = 21; + jjCheckNAdd(4); + break; + case 6: + jjAddStates(0, 1); + break; + default : break; + } + } while(i != startsAt); + } + else + { + int i2 = (curChar & 0xff) >> 6; + long l2 = 1L << (curChar & 077); + do + { + switch(jjstateSet[--i]) + { + case 6: + if ((jjbitVec0[i2] & l2) != 0L) + jjAddStates(0, 1); + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} +static final int[] jjnextStates = { + 6, 7, +}; + +/** Token literal values. */ +public static final String[] jjstrLiteralImages = { +"", "\72", "\133", "\174", "\135", "\54", "\50", "\51", "\75", "\116\117\124", +"\105\126\105\122\131", "\115\117\123\124", "\123\117\115\105", "\124\110\105\115\117\123\124", +"\124\110\105\114\105\101\123\124", "\101\106\105\127", "\115\101\116\131", "\116\117", +"\110\117\127\115\101\116\131", null, null, null, null, null, null, null, null, }; + +/** Lexer state names. */ +public static final String[] lexStateNames = { + "DEFAULT", +}; +static final long[] jjtoToken = { + 0x7fffffL, +}; +static final long[] jjtoSkip = { + 0x7800000L, +}; +protected SimpleCharStream input_stream; +private final int[] jjrounds = new int[8]; +private final int[] jjstateSet = new int[16]; +protected char curChar; +/** Constructor. */ +public DRSParserTokenManager(SimpleCharStream stream){ + if (SimpleCharStream.staticFlag) + throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer."); + input_stream = stream; +} + +/** Constructor. */ +public DRSParserTokenManager(SimpleCharStream stream, int lexState){ + this(stream); + SwitchTo(lexState); +} + +/** Reinitialise parser. */ +public void ReInit(SimpleCharStream stream) +{ + jjmatchedPos = jjnewStateCnt = 0; + curLexState = defaultLexState; + input_stream = stream; + ReInitRounds(); +} +private void ReInitRounds() +{ + int i; + jjround = 0x80000001; + for (i = 8; i-- > 0;) + jjrounds[i] = 0x80000000; +} + +/** Reinitialise parser. */ +public void ReInit(SimpleCharStream stream, int lexState) +{ + ReInit(stream); + SwitchTo(lexState); +} + +/** Switch to specified lex state. */ +public void SwitchTo(int lexState) +{ + if (lexState >= 1 || lexState < 0) + throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); + else + curLexState = lexState; +} + +protected Token jjFillToken() +{ + final Token t; + final String curTokenImage; + final int beginLine; + final int endLine; + final int beginColumn; + final int endColumn; + String im = jjstrLiteralImages[jjmatchedKind]; + curTokenImage = (im == null) ? input_stream.GetImage() : im; + beginLine = input_stream.getBeginLine(); + beginColumn = input_stream.getBeginColumn(); + endLine = input_stream.getEndLine(); + endColumn = input_stream.getEndColumn(); + t = Token.newToken(jjmatchedKind, curTokenImage); + + t.beginLine = beginLine; + t.endLine = endLine; + t.beginColumn = beginColumn; + t.endColumn = endColumn; + + return t; +} + +int curLexState = 0; +int defaultLexState = 0; +int jjnewStateCnt; +int jjround; +int jjmatchedPos; +int jjmatchedKind; + +/** Get the next Token. */ +public Token getNextToken() +{ + Token matchedToken; + int curPos = 0; + + EOFLoop : + for (;;) + { + try + { + curChar = input_stream.BeginToken(); + } + catch(java.io.IOException e) + { + jjmatchedKind = 0; + matchedToken = jjFillToken(); + return matchedToken; + } + + try { input_stream.backup(0); + while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L) + curChar = input_stream.Begi... [truncated message content] |