From: <jen...@us...> - 2011-08-26 17:55:10
|
Revision: 3132 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3132&view=rev Author: jenslehmann Date: 2011-08-26 17:55:02 +0000 (Fri, 26 Aug 2011) Log Message: ----------- created yet another conf parser and a test case for it Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/reasoning/OWLAPIReasoner.java Added Paths: ----------- trunk/components-core/src/main/java/org/dllearner/core/config/PropertyEditorMapping.java trunk/examples/family/father_new.conf trunk/interfaces/src/main/java/org/dllearner/cli/ConfFileOption2.java trunk/interfaces/src/main/java/org/dllearner/confparser3/ trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserConstants.java trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserTokenManager.java trunk/interfaces/src/main/java/org/dllearner/confparser3/ParseException.java trunk/interfaces/src/main/java/org/dllearner/confparser3/SimpleCharStream.java trunk/interfaces/src/main/java/org/dllearner/confparser3/Token.java trunk/interfaces/src/main/java/org/dllearner/confparser3/TokenMgrError.java trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj trunk/interfaces/src/test/java/org/dllearner/confparser3/ trunk/interfaces/src/test/java/org/dllearner/confparser3/ParseTest.java Removed Paths: ------------- trunk/components-core/src/main/java/org/dllearner/core/config/README.txt Added: trunk/components-core/src/main/java/org/dllearner/core/config/PropertyEditorMapping.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/config/PropertyEditorMapping.java (rev 0) +++ trunk/components-core/src/main/java/org/dllearner/core/config/PropertyEditorMapping.java 2011-08-26 17:55:02 UTC (rev 3132) @@ -0,0 +1,44 @@ +/** + * Copyright (C) 2007-2011, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package org.dllearner.core.config; + +import java.beans.PropertyEditor; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.springframework.beans.propertyeditors.URLEditor; + +/** + * This class declares the mapping between property editors and the types they should + * edit in DL-Learner. + * + * @author Jens Lehmann + * + */ +public final class PropertyEditorMapping { + + public static final Map<Class<?>,Class<? extends PropertyEditor>> map = new HashMap<Class<?>,Class<? extends PropertyEditor>>(); + static { + map.put(Boolean.class, BooleanEditor.class); + map.put(Integer.class, IntegerEditor.class); + map.put(URL.class, URLEditor.class); + } + +} Deleted: trunk/components-core/src/main/java/org/dllearner/core/config/README.txt =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/config/README.txt 2011-08-26 08:27:45 UTC (rev 3131) +++ trunk/components-core/src/main/java/org/dllearner/core/config/README.txt 2011-08-26 17:55:02 UTC (rev 3132) @@ -1,4 +0,0 @@ -In DL-Learner, we should use the following external property -editors: - -URL => org.springframework.beans.propertyeditors.URLEditor Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/OWLAPIReasoner.java 2011-08-26 08:27:45 UTC (rev 3131) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/OWLAPIReasoner.java 2011-08-26 17:55:02 UTC (rev 3132) @@ -58,7 +58,7 @@ * * @author Jens Lehmann */ -@ComponentAnn(name = "OWLAPIReasoner", shortName = "owlApiReasoner", version = 0.8) +@ComponentAnn(name = "OWL API Reasoner", shortName = "oar", version = 0.8) public class OWLAPIReasoner extends AbstractReasonerComponent { // private static Logger logger = Logger Added: trunk/examples/family/father_new.conf =================================================================== --- trunk/examples/family/father_new.conf (rev 0) +++ trunk/examples/family/father_new.conf 2011-08-26 17:55:02 UTC (rev 3132) @@ -0,0 +1,48 @@ +/** + * Father Example + * + * possible solution: + * male AND EXISTS hasChild.TOP + * + * Copyright (C) 2007, Jens Lehmann + */ + +// knowledge source definition +ks.type = "KB file" +ks.url = "father.kb" +// ks.baseDir = "examples/family"; //Assuming running from parent directory of examples. + +// reasoner +reasoner.type = "fast instance checker" +reasoner.reasonerComponent = embeddedReasoner +reasoner.sources = { ks } + +embeddedReasoner.type = "OWL API Reasoner" +embeddedReasoner.sources = { ks } + +// learning problem +lp.type = "posNegStandard" +lp.positiveExamples = {"http://localhost/foo#stefan","http://localhost/foo#markus","http://localhost/foo#bernd"} +lp.negativeExamples = {"http://localhost/foo#heinz","http://localhost/foo#anna","http://localhost/foo#gabi","http://localhost/foo#michelle"} + +// plug a reasoner into the learning problem +lp.reasoner = reasoner +//lp.reasoner = reasoner - try to remove the component:part in the parser + +// create a refinement operator and configure it +op.type = "rho" +op.useCardinalityRestrictions = true +op.reasoner = reasoner + +// create a heuristic and configure it +h.type = "multiheuristic" +h.expansionPenaltyFactor = 0.2 + +// create learning algorithm to run +alg.type = "ocel" +alg.reasoner = reasoner +alg.operator = op +alg.learningProblem = lp +alg.heuristic = h +alg.maxExecutionTimeInSeconds = 15 + Added: trunk/interfaces/src/main/java/org/dllearner/cli/ConfFileOption2.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/cli/ConfFileOption2.java (rev 0) +++ trunk/interfaces/src/main/java/org/dllearner/cli/ConfFileOption2.java 2011-08-26 17:55:02 UTC (rev 3132) @@ -0,0 +1,101 @@ +/** + * Copyright (C) 2007, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.cli; + + +/** + * Programmatic representation of an option setting in a conf file: + * bean.property = value; + * + * TODO: Class is not stable yet. + * + * @author Jens Lehmann + * + */ +public class ConfFileOption2 { + + // a boolean flag which indicates whether the value was in quotes + private boolean inQuotes; + + private String beanName; + + private String propertyName; + + private String propertyValue; + + private Class<?> propertyType; + + // TODO: Do we want to store the actual value as object here or leave it up to + // the corresponding PropertyEditor to create it? + private Object valueObject; + + public ConfFileOption2() { + + } + + public boolean isInQuotes() { + return inQuotes; + } + + public void setInQuotes(boolean inQuotes) { + this.inQuotes = inQuotes; + } + + public String getBeanName() { + return beanName; + } + + public void setBeanName(String beanName) { + this.beanName = beanName; + } + + public String getPropertyName() { + return propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public String getPropertyValue() { + return propertyValue; + } + + public void setPropertyValue(String propertyValue) { + this.propertyValue = propertyValue; + } + + public Class<?> getPropertyType() { + return propertyType; + } + + public void setPropertyType(Class<?> propertyType) { + this.propertyType = propertyType; + } + + public Object getValueObject() { + return valueObject; + } + + public void setValueObject(Object valueObject) { + this.valueObject = valueObject; + } + +} Added: trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java (rev 0) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java 2011-08-26 17:55:02 UTC (rev 3132) @@ -0,0 +1,773 @@ +/* Generated By:JavaCC: Do not edit this line. ConfParser.java */ +package org.dllearner.confparser3; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.dllearner.cli.ConfFileOption2; +import org.dllearner.parser.KBParser; +import org.dllearner.utilities.datastructures.StringTuple; + +public class ConfParser implements ConfParserConstants { + + // conf file options + private List<ConfFileOption2> confOptions = new LinkedList<ConfFileOption2>(); + private Map<String,ConfFileOption2> confOptionsByProperty = new HashMap<String,ConfFileOption2>(); + private Map<String,List<ConfFileOption2>> confOptionsByBean = new HashMap<String,List<ConfFileOption2>>(); + + private void addConfOption(ConfFileOption2 confOption) { + confOptions.add(confOption); + confOptionsByProperty.put(confOption.getPropertyName(), confOption); + String beanName = confOption.getBeanName(); + if(confOptionsByBean.containsKey(beanName)) + confOptionsByBean.get(beanName).add(confOption); + else { + LinkedList<ConfFileOption2> optionList = new LinkedList<ConfFileOption2>(); + optionList.add(confOption); + confOptionsByBean.put(beanName,optionList); + } + } + + public List<ConfFileOption2> getConfOptions() { + return confOptions; + } + + public Map<String,ConfFileOption2> getConfOptionsByProperty() { + return confOptionsByProperty; + } + + public ConfFileOption2 getConfOptionsByProperty(String propertyName) { + return confOptionsByProperty.get(propertyName); + } + + public Map<String,List<ConfFileOption2>> getConfOptionsByBean() { + return confOptionsByBean; + } + + public List<ConfFileOption2> getConfOptionsByBean(String beanName) { + return confOptionsByBean.get(beanName); + } + + public static ConfParser parseFile(File filename) throws FileNotFoundException, ParseException { + ConfParser parser = new ConfParser(new FileInputStream(filename)); + parser.Start(); + return parser; + } + + final public void Start() throws ParseException { + ConfFileOption2 confOption; + label_1: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + ; + break; + default: + jj_la1[0] = jj_gen; + break label_1; + } + confOption = ConfOption(); + addConfOption(confOption); + } + jj_consume_token(0); + } + + final public ConfFileOption2 ConfOption() throws ParseException { + boolean containsSubOption=false; + String value="", value1="", value2="", tmp="", tmp2=""; + Set<String> values = new HashSet<String>(); + List<StringTuple> tuples = new LinkedList<StringTuple>(); + + ConfFileOption2 option = new ConfFileOption2(); + boolean inQuotes = false; + String beanName; + String propertyName = ""; + String propertyValue; + Class<?> propertyType; + Object val = null; + beanName = Id(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMAND_END: + jj_consume_token(COMMAND_END); + propertyName = Id(); + containsSubOption=true; + break; + default: + jj_la1[1] = jj_gen; + ; + } + jj_consume_token(25); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + // two strings separated by a double colon + // LOOKAHEAD(2) value1=Id() ":" value2=Id() { useColon = true; } + // simple string + propertyValue = Id(); + val = propertyValue; propertyType = String.class; + break; + case STRING: + propertyValue = String(); + val = propertyValue; inQuotes = true; propertyType = String.class; + break; + case NUMBER: + val = Integer(); + propertyValue = val.toString(); propertyType = Integer.class; + break; + case DOUBLE: + val = Double(); + propertyValue = val.toString(); propertyType = Double.class; + break; + default: + jj_la1[6] = jj_gen; + if (jj_2_4(2147483647)) { + jj_consume_token(26); + jj_consume_token(27); + val = new HashSet(); propertyType = Set.class; propertyValue = "{}"; + } else if (jj_2_5(4)) { + jj_consume_token(26); + label_2: + while (true) { + if (jj_2_1(2)) { + ; + } else { + break label_2; + } + tmp = String(); + values.add(tmp); + jj_consume_token(28); + } + tmp = String(); + values.add(tmp); + jj_consume_token(27); + propertyType = Set.class; propertyValue = "{ TODO }"; + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 26: + jj_consume_token(26); + label_3: + while (true) { + if (jj_2_2(4)) { + ; + } else { + break label_3; + } + tmp = Id(); + values.add(tmp); + jj_consume_token(28); + } + tmp = Id(); + values.add(tmp); + jj_consume_token(27); + val = values; propertyType = Set.class; propertyValue = "{ TODO }"; + break; + default: + jj_la1[7] = jj_gen; + if (jj_2_6(2147483647)) { + jj_consume_token(29); + jj_consume_token(30); + val = new LinkedList(); propertyType = List.class; propertyValue = "[]"; + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 29: + jj_consume_token(29); + label_4: + while (true) { + if (jj_2_3(6)) { + ; + } else { + break label_4; + } + jj_consume_token(31); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STRING: + tmp = String(); + break; + case ID: + tmp = Id(); + break; + default: + jj_la1[2] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(28); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STRING: + tmp2 = String(); + break; + case ID: + tmp2 = Id(); + break; + default: + jj_la1[3] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(32); + tuples.add(new StringTuple(tmp,tmp2)); + jj_consume_token(28); + } + jj_consume_token(31); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STRING: + tmp = String(); + break; + case ID: + tmp = Id(); + break; + default: + jj_la1[4] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(28); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STRING: + tmp2 = String(); + break; + case ID: + tmp2 = Id(); + break; + default: + jj_la1[5] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(32); + tuples.add(new StringTuple(tmp,tmp2)); + jj_consume_token(30); + val = values; propertyType = List.class; + break; + default: + jj_la1[8] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + } + } + } + if(containsSubOption) { + option.setInQuotes(inQuotes); + option.setBeanName(beanName); + option.setPropertyName(propertyName); + option.setPropertyType(propertyType); + option.setValueObject(val); + } else { + // ... currently nothing here (maybe special parser directives) + } + {if (true) return option;} + throw new Error("Missing return statement in function"); + } + + final public String Individual() throws ParseException { + String name; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + name = Id(); + break; + case STRING: + name = String(); + break; + default: + jj_la1[9] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return KBParser.getInternalURI(name);} + throw new Error("Missing return statement in function"); + } + + final public String ComplexId() throws ParseException { + Token t1,t2; + if (jj_2_7(2)) { + t1 = jj_consume_token(ID); + jj_consume_token(33); + 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[10] = 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); + {if (true) return t.image;} + throw new Error("Missing return statement in function"); + } + + final public Double Double() throws ParseException { + Token t; + t = jj_consume_token(DOUBLE); + {if (true) return new Double(t.image);} + throw new Error("Missing return statement in function"); + } + + final public Integer Integer() throws ParseException { + Token t; + t = jj_consume_token(NUMBER); + {if (true) return new Integer(t.image);} + throw new Error("Missing return statement in function"); + } + + final public String String() throws ParseException { + Token t; + String s; + t = jj_consume_token(STRING); + // enclosing "" are removed + s = t.image; + s = s.substring(1, s.length() - 1); + {if (true) return s;} + 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_3R_8() { + if (jj_3R_6()) return true; + return false; + } + + private boolean jj_3_5() { + if (jj_scan_token(26)) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_1()) { jj_scanpos = xsp; break; } + } + if (jj_3R_5()) return true; + if (jj_scan_token(27)) return true; + return false; + } + + private boolean jj_3_1() { + if (jj_3R_5()) return true; + if (jj_scan_token(28)) return true; + return false; + } + + private boolean jj_3_6() { + if (jj_scan_token(29)) return true; + if (jj_scan_token(30)) return true; + return false; + } + + private boolean jj_3_7() { + if (jj_scan_token(ID)) return true; + if (jj_scan_token(33)) return true; + return false; + } + + private boolean jj_3R_9() { + if (jj_3R_5()) return true; + return false; + } + + private boolean jj_3R_5() { + if (jj_scan_token(STRING)) return true; + return false; + } + + private boolean jj_3_3() { + if (jj_scan_token(31)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_7()) { + jj_scanpos = xsp; + if (jj_3R_8()) return true; + } + if (jj_scan_token(28)) return true; + xsp = jj_scanpos; + if (jj_3R_9()) { + jj_scanpos = xsp; + if (jj_3R_10()) return true; + } + if (jj_scan_token(32)) return true; + if (jj_scan_token(28)) return true; + return false; + } + + private boolean jj_3_2() { + if (jj_3R_6()) return true; + if (jj_scan_token(28)) return true; + return false; + } + + private boolean jj_3R_10() { + if (jj_3R_6()) return true; + return false; + } + + private boolean jj_3R_7() { + if (jj_3R_5()) return true; + return false; + } + + private boolean jj_3_4() { + if (jj_scan_token(26)) return true; + if (jj_scan_token(27)) return true; + return false; + } + + private boolean jj_3R_6() { + if (jj_scan_token(ID)) return true; + return false; + } + + /** Generated Token Manager. */ + public ConfParserTokenManager 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[11]; + static private int[] jj_la1_0; + static private int[] jj_la1_1; + static { + jj_la1_init_0(); + jj_la1_init_1(); + } + private static void jj_la1_init_0() { + jj_la1_0 = new int[] {0x1000,0x100,0x1001000,0x1001000,0x1001000,0x1001000,0x1007000,0x4000000,0x20000000,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,}; + } + final private JJCalls[] jj_2_rtns = new JJCalls[7]; + private boolean jj_rescan = false; + private int jj_gc = 0; + + /** Constructor with InputStream. */ + public ConfParser(java.io.InputStream stream) { + this(stream, null); + } + /** Constructor with InputStream and supplied encoding */ + public ConfParser(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 ConfParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 11; 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 < 11; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + /** Constructor. */ + public ConfParser(java.io.Reader stream) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new ConfParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 11; 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 < 11; 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 ConfParser(ConfParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 11; 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(ConfParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 11; 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[34]; + if (jj_kind >= 0) { + la1tokens[jj_kind] = true; + jj_kind = -1; + } + for (int i = 0; i < 11; 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; + } + if ((jj_la1_1[i] & (1<<j)) != 0) { + la1tokens[32+j] = true; + } + } + } + } + for (int i = 0; i < 34; 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 < 7; 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; + } + } + 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/interfaces/src/main/java/org/dllearner/confparser3/ConfParserConstants.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserConstants.java (rev 0) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserConstants.java 2011-08-26 17:55:02 UTC (rev 3132) @@ -0,0 +1,95 @@ +/* Generated By:JavaCC: Do not edit this line. ConfParserConstants.java */ +package org.dllearner.confparser3; + + +/** + * Token literal values and constants. + * Generated by org.javacc.parser.OtherFilesGen#start() + */ +public interface ConfParserConstants { + + /** End of File. */ + int EOF = 0; + /** RegularExpression Id. */ + int SINGLE_LINE_COMMENT = 5; + /** RegularExpression Id. */ + int FORMAL_COMMENT = 6; + /** RegularExpression Id. */ + int MULTI_LINE_COMMENT = 7; + /** RegularExpression Id. */ + int COMMAND_END = 8; + /** RegularExpression Id. */ + int CONF_END = 9; + /** RegularExpression Id. */ + int POS_EX = 10; + /** RegularExpression Id. */ + int NEG_EX = 11; + /** RegularExpression Id. */ + int ID = 12; + /** RegularExpression Id. */ + int NUMBER = 13; + /** RegularExpression Id. */ + int DOUBLE = 14; + /** RegularExpression Id. */ + int TOP = 15; + /** RegularExpression Id. */ + int BOTTOM = 16; + /** RegularExpression Id. */ + int AND = 17; + /** RegularExpression Id. */ + int OR = 18; + /** RegularExpression Id. */ + int EXISTS = 19; + /** RegularExpression Id. */ + int ALL = 20; + /** RegularExpression Id. */ + int NOT = 21; + /** RegularExpression Id. */ + int GE = 22; + /** RegularExpression Id. */ + int LE = 23; + /** RegularExpression Id. */ + int STRING = 24; + + /** Lexical state. */ + int DEFAULT = 0; + + /** Literal token values. */ + String[] tokenImage = { + "<EOF>", + "\" \"", + "\"\\t\"", + "\"\\n\"", + "\"\\r\"", + "<SINGLE_LINE_COMMENT>", + "<FORMAL_COMMENT>", + "<MULTI_LINE_COMMENT>", + "\".\"", + "\";\"", + "\"+\"", + "\"-\"", + "<ID>", + "<NUMBER>", + "<DOUBLE>", + "\"TOP\"", + "\"BOTTOM\"", + "\"AND\"", + "\"OR\"", + "<EXISTS>", + "<ALL>", + "<NOT>", + "\">=\"", + "\"<=\"", + "<STRING>", + "\"=\"", + "\"{\"", + "\"}\"", + "\",\"", + "\"[\"", + "\"]\"", + "\"(\"", + "\")\"", + "\":\"", + }; + +} Added: trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserTokenManager.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserTokenManager.java (rev 0) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserTokenManager.java 2011-08-26 17:55:02 UTC (rev 3132) @@ -0,0 +1,770 @@ +/* Generated By:JavaCC: Do not edit this line. ConfParserTokenManager.java */ +package org.dllearner.confparser3; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.dllearner.cli.ConfFileOption2; +import org.dllearner.parser.KBParser; +import org.dllearner.utilities.datastructures.StringTuple; + +/** Token Manager. */ +public class ConfParserTokenManager implements ConfParserConstants +{ + + /** 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 & 0x20000L) != 0L) + return 13; + 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, 31); + case 41: + return jjStopAtPos(0, 32); + case 43: + return jjStopAtPos(0, 10); + case 44: + return jjStopAtPos(0, 28); + case 45: + return jjStopAtPos(0, 11); + case 46: + return jjStopAtPos(0, 8); + case 58: + return jjStopAtPos(0, 33); + case 59: + return jjStopAtPos(0, 9); + case 60: + return jjMoveStringLiteralDfa1_0(0x800000L); + case 61: + return jjStopAtPos(0, 25); + case 62: + return jjMoveStringLiteralDfa1_0(0x400000L); + case 65: + return jjMoveStringLiteralDfa1_0(0x20000L); + case 66: + return jjMoveStringLiteralDfa1_0(0x10000L); + case 79: + return jjMoveStringLiteralDfa1_0(0x40000L); + case 84: + return jjMoveStringLiteralDfa1_0(0x8000L); + case 91: + return jjStopAtPos(0, 29); + case 93: + return jjStopAtPos(0, 30); + case 123: + return jjStopAtPos(0, 26); + case 125: + return jjStopAtPos(0, 27); + 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 61: + if ((active0 & 0x400000L) != 0L) + return jjStopAtPos(1, 22); + else if ((active0 & 0x800000L) != 0L) + return jjStopAtPos(1, 23); + break; + case 78: + return jjMoveStringLiteralDfa2_0(active0, 0x20000L); + case 79: + return jjMoveStringLiteralDfa2_0(active0, 0x18000L); + case 82: + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); + break; + 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 68: + if ((active0 & 0x20000L) != 0L) + return jjStopAtPos(2, 17); + break; + case 80: + if ((active0 & 0x8000L) != 0L) + return jjStopAtPos(2, 15); + break; + case 84: + return jjMoveStringLiteralDfa3_0(active0, 0x10000L); + 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 84: + return jjMoveStringLiteralDfa4_0(active0, 0x10000L); + 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 79: + return jjMoveStringLiteralDfa5_0(active0, 0x10000L); + 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 77: + if ((active0 & 0x10000L) != 0L) + return jjStopAtPos(5, 16); + break; + default : + break; + } + return jjStartNfa_0(4, active0); +} +static final long[] jjbitVec0 = { + 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +private int jjMoveNfa_0(int startState, int curPos) +{ + int startsAt = 0; + jjnewStateCnt = 53; + 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 ((0x3fe000000000000L & l) != 0L) + { + if (kind > 13) + kind = 13; + jjCheckNAddStates(0, 2); + } + else if (curChar == 48) + { + if (kind > 13) + kind = 13; + jjCheckNAdd(50); + } + else if (curChar == 47) + jjAddStates(3, 5); + else if (curChar == 34) + jjCheckNAddTwoStates(21, 22); + break; + case 1: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 12) + kind = 12; + jjstateSet[jjnewStateCnt++] = 1; + break; + case 20: + if (curChar == 34) + jjCheckNAddTwoStates(21, 22); + break; + case 21: + if ((0xfffffffbffffdbffL & l) != 0L) + jjCheckNAddTwoStates(21, 22); + break; + case 22: + if (curChar == 34 && kind > 24) + kind = 24; + break; + case 28: + if (curChar == 47) + jjAddStates(3, 5); + break; + case 29: + if (curChar == 47) + jjCheckNAddStates(6, 8); + break; + case 30: + if ((0xffffffffffffdbffL & l) != 0L) + jjCheckNAddStates(6, 8); + break; + case 31: + if ((0x2400L & l) != 0L && kind > 5) + kind = 5; + break; + case 32: + if (curChar == 10 && kind > 5) + kind = 5; + break; + case 33: + if (curChar == 13) + jjstateSet[jjnewStateCnt++] = 32; + break; + case 34: + if (curChar == 42) + jjCheckNAddTwoStates(35, 36); + break; + case 35: + if ((0xfffffbffffffffffL & l) != 0L) + jjCheckNAddTwoStates(35, 36); + break; + case 36: + if (curChar == 42) + jjCheckNAddStates(9, 11); + break; + case 37: + if ((0xffff7bffffffffffL & l) != 0L) + jjCheckNAddTwoStates(38, 36); + break; + case 38: + if ((0xfffffbffffffffffL & l) != 0L) + jjCheckNAddTwoStates(38, 36); + break; + case 39: + if (curChar == 47 && kind > 6) + kind = 6; + break; + case 40: + if (curChar == 42) + jjstateSet[jjnewStateCnt++] = 34; + break; + case 41: + if (curChar == 42) + jjCheckNAddTwoStates(42, 43); + break; + case 42: + if ((0xfffffbffffffffffL & l) != 0L) + jjCheckNAddTwoStates(42, 43); + break; + case 43: + if (curChar == 42) + jjCheckNAddStates(12, 14); + break; + case 44: + if ((0xffff7bffffffffffL & l) != 0L) + jjCheckNAddTwoStates(45, 43); + break; + case 45: + if ((0xfffffbffffffffffL & l) != 0L) + jjCheckNAddTwoStates(45, 43); + break; + case 46: + if (curChar == 47 && kind > 7) + kind = 7; + break; + case 47: + if ((0x3fe000000000000L & l) == 0L) + break; + if (kind > 13) + kind = 13; + jjCheckNAddStates(0, 2); + break; + case 48: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 13) + kind = 13; + jjCheckNAdd(48); + break; + case 49: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(49, 50); + break; + case 50: + if (curChar != 46) + break; + if (kind > 14) + kind = 14; + jjCheckNAdd(51); + break; + case 51: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 14) + kind = 14; + jjCheckNAdd(51); + break; + case 52: + if (curChar != 48) + break; + if (kind > 13) + kind = 13; + jjCheckNAdd(50); + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + do + { + switch(jjstateSet[--i]) + { + case 0: + if ((0x7fffffe00000000L & l) != 0L) + { + if (kind > 12) + kind = 12; + jjCheckNAdd(1); + } + else if (curChar == 78) + jjAddStates(15, 16); + else if (curChar == 70) + jjstateSet[jjnewStateCnt++] = 18; + else if (curChar == 65) + jjstateSet[jjnewStateCnt++] = 13; + else if (curChar == 83) + jjstateSet[jjnewStateCnt++] = 10; + else if (curChar == 69) + jjstateSet[jjnewStateCnt++] = 6; + break; + case 1: + if ((0x7fffffe87fffffeL & l) == 0L) + break; + if (kind > 12) + kind = 12; + jjCheckNAdd(1); + break; + case 2: + if (curChar == 83 && kind > 19) + kind = 19; + break; + case 3: + if (curChar == 84) + jjstateSet[jjnewStateCnt++] = 2; + break; + case 4: + if (curChar == 83) + jjstateSet[jjnewStateCnt++] = 3; + break; + case 5: + if (curChar == 73) + jjstateSet[jjnewStateCnt++] = 4; + break; + case 6: + if (curChar == 88) + jjstateSet[jjnewStateCnt++] = 5; + break; + case 7: + if (curChar == 69) + jjstateSet[jjnewStateCnt++] = 6; + break; + case 8: + if (curChar == 69 && kind > 19) + kind = 19; + break; + case 9: + if (curChar == 77) + jjstateSet[jjnewStateCnt++] = 8; + break; + case 10: + if (curChar == 79) + jjstateSet[jjnewStateCnt++] = 9; + break; + case 11: + if (curChar == 83) + jjstateSet[jjnewStateCnt++] = 10; + break; + case 12: + if (curChar == 76 && kind > 20) + kind = 20; + break; + case 13: + case 15: + if (curChar == 76) + jjCheckNAdd(12); + break; + case 14: + if (curChar == 65) + jjstateSet[jjnewStateCnt++] = 13; + break; + case 16: + if (curChar == 65) + jjstateSet[jjnewStateCnt++] = 15; + break; + case 17: + if (curChar == 82) + jjstateSet[jjnewStateCnt++] = 16; + break; + case 18: + if (curChar == 79) + jjstateSet[jjnewStateCnt++] = 17; + break; + case 19: + if (curChar == 70) + jjstateSet[jjnewStateCnt++] = 18; + break; + case 21: + if ((0xffffffffefffffffL & l) != 0L) + jjAddStates(17, 18); + break; + case 23: + if (curChar == 78) + jjAddStates(15, 16); + break; + case 24: + if (curChar == 71 && kind > 21) + kind = 21; + break; + case 25: + if (curChar == 69) + jjstateSet[jjnewStateCnt++] = 24; + break; + case 26: + if (curChar == 84 && kind > 21) + kind = 21; + break; + case 27: + if (curChar == 79) + jjstateSet[jjnewStateCnt++] = 26; + break; + case 30: + jjAddStates(6, 8); + break; + case 35: + jjCheckNAddTwoStates(35, 36); + break; + case 37: + case 38: + jjCheckNAddTwoStates(38, 36); + break; + case 42: + jjCheckNAddTwoStates(42, 43); + break; + case 44: + case 45: + jjCheckNAddTwoStates(45, 43); + break; + default : break; + } + } while(i != startsAt); + } + else + { + int i2 = (curChar & 0xff) >> 6; + long l2 = 1L << (curChar & 077); + do + { + switch(jjstateSet[--i]) + { + case 21: + if ((jjbitVec0[i2] & l2) != 0L) + jjAddStates(17, 18); + break; + case 30: + if ((jjbitVec0[i2] & l2) != 0L) + jjAddStates(6, 8); + break; + case 35: + if ((jjbitVec0[i2] & l2) != 0L) + jjCheckNAddTwoStates(35, 36); + break; + case 37: + case 38: + if ((jjbitVec0[i2] & l2) != 0L) + jjCheckNAddTwoStates(38, 36); + break; + case 42: + if ((jjbitVec0[i2] & l2) != 0L) + jjCheckNAddTwoStates(42, 43); + break; + case 44: + case 45: + if ((jjbitVec0[i2] & l2) != 0L) + jjCheckNAddTwoStates(45, 43); + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 53 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} +static final int[] jjnextStates = { + 48, 49, 50, 29, 40, 41, 30, 31, 33, 36, 37, 39, 43, 44, 46, 25, + 27, 21, 22, +}; + +/** Token literal values. */ +public static final String[] jjstrLiteralImages = { +"", null, null, null, null, null, null, null, "\56", "\73", "\53", "\55", null, +null, null, "\124\117\120", "\102\117\124\124\117\115", "\101\116\104", "\117\122", +null, null, null, "\76\75", "\74\75", null, "\75", "\173", "\175", "\54", "\133", +"\135", "\50", "\51", "\72", }; + +/** Lexer state names. */ +public static final String[] lexStateNames = { + "DEFAULT", +}; +static final long[] jjtoToken = { + 0x3ffffff01L, +}; +static final long[] jjtoSkip = { + 0xfeL, +}; +protected SimpleCharStream input_stream; +private final int[] jjrounds = new int[53]; +private final int[] jjstateSet = new int[106]; +protected char curChar; +/** Constructor. */ +public ConfParserTokenManager(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 ConfParserTokenManager(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 = 53; 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.BeginToken(); + } + catch (java.io.IOException e1) { continue EOFLoop; } + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_0(); + if (jjmatchedKind != 0x7fffffff) + { + if (jjmatchedPos + 1 < curPos) + input_stream.backup(curPos - jjmatchedPos - 1); + if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) + { + matchedToken = jjFillToken(); + return matchedToken; + } + else + { + continue EOFLoop; + } + } + int error_line = input_stream.getEndLine(); + int error_column = input_stream.getEndColumn(); + String error_after = null; + boolean EOFSeen = false; + try { input_stream.readChar(); input_stream.backup(1); } + catch (java.io.IOException e1) { + EOFSeen = true; + error_after = curPos <= 1 ? "" : input_stream.GetImage(); + if (curChar == '\n' || curChar == '\r') { + error_line++; + error_column = 0; + } + else + error_column++; + } + if (!EOFSeen) { + input_stream.backup(1); + error_after = curPos <= 1 ? "" : input_stream.GetImage(); + } + throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR); + } +} + +private void jjCheckNAdd(int state) +{ + if (jjrounds[state] != jjround) + { + jjstateSet[jjnewStateCnt++] = state; + jjrounds[state] = jjround; + } +} +private void jjAddStates(int start, int end) +{ + do { + jjstateSet[jjnewStateCnt++] = jjnextStates[start]; + } while (start++ != end); +} +private void jjCheckNAddTwoStates(int state1, int state2) +{ + jjCheckNAdd(state1); + jjCheckNAdd(state2); +} + +private void jjCheckNAddStates(int start, int end) +{ + do { + jjCheckNAdd(jjnextStates[start]); + } while (start++ != end); +} + +} Added: trunk/interfaces/src/main/java/org/dllearner/confparser3/ParseException.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/ParseException.java (rev 0) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/ParseException.java 2011-08-26 17:55:02 UTC (rev 3132) @@ -0,0 +1,187 @@ +/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 5.0 */ +/* JavaCCOptions:KEEP_LINE_COL=null */ +package org.dllearner.confparser3; + +/** + * This exception is thrown when parse errors are encountered. + * You can explicitly create objects of this exception type by + * calling the method generateParseException in the generated + * parser. + * + * You can modify this class to customize your error reporting + * mechanisms so long as you retain the public fields. + */ +public class ParseException extends Exception { + + /** + * The version identifier for this Serializable class. + * Increment only if the <i>serialized</i> form of the + * class changes. + */ + private static final long s... [truncated message content] |