From: <jen...@us...> - 2007-08-27 15:22:18
|
Revision: 66 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=66&view=rev Author: jenslehmann Date: 2007-08-27 08:20:20 -0700 (Mon, 27 Aug 2007) Log Message: ----------- recommit due to Subclipse problems Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java trunk/src/dl-learner/org/dllearner/parser/DLLearnerConstants.java trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java trunk/src/dl-learner/org/dllearner/parser/DLLearnerTreeConstants.java Modified: trunk/src/dl-learner/org/dllearner/parser/DLLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java 2007-08-27 15:13:33 UTC (rev 65) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearner.java 2007-08-27 15:20:20 UTC (rev 66) @@ -22,8 +22,8 @@ import org.dllearner.ConfigurationOption; import org.dllearner.utilities.*; -@SuppressWarnings({"all"}) -public class DLLearner/*@bgen(jjtree)*/implements DLLearnerTreeConstants, DLLearnerConstants {/*@bgen(jjtree)*/ +// @SuppressWarnings({"all"}) +public @SuppressWarnings("all") class DLLearner/*@bgen(jjtree)*/implements DLLearnerTreeConstants, DLLearnerConstants {/*@bgen(jjtree)*/ protected static JJTDLLearnerState jjtree = new JJTDLLearnerState(); private static ConceptComparator conceptComparator = new ConceptComparator(); // hier wird Parse-Fehler angezeigt, obwohl eigentlich alles stimmt?? @@ -2027,8 +2027,8 @@ } public DLLearner(java.io.InputStream stream, String encoding) { if (jj_initialized_once) { - System.out.println("ERROR: Second call to constructor of static parser. You must"); - System.out.println(" either use ReInit() or set the JavaCC option STATIC to false"); + System.out.println("ERROR: Second call to constructor of static parser. "); + System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false"); System.out.println(" during parser generation."); throw new Error(); } @@ -2058,8 +2058,8 @@ public DLLearner(java.io.Reader stream) { if (jj_initialized_once) { - System.out.println("ERROR: Second call to constructor of static parser. You must"); - System.out.println(" either use ReInit() or set the JavaCC option STATIC to false"); + System.out.println("ERROR: Second call to constructor of static parser. "); + System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false"); System.out.println(" during parser generation."); throw new Error(); } @@ -2086,8 +2086,8 @@ public DLLearner(DLLearnerTokenManager tm) { if (jj_initialized_once) { - System.out.println("ERROR: Second call to constructor of static parser. You must"); - System.out.println(" either use ReInit() or set the JavaCC option STATIC to false"); + System.out.println("ERROR: Second call to constructor of static parser. "); + System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false"); System.out.println(" during parser generation."); throw new Error(); } @@ -2218,9 +2218,6 @@ static public ParseException generateParseException() { jj_expentries.removeAllElements(); boolean[] la1tokens = new boolean[39]; - for (int i = 0; i < 39; i++) { - la1tokens[i] = false; - } if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; @@ -2249,7 +2246,7 @@ jj_add_error_token(0, 0); int[][] exptokseq = new int[jj_expentries.size()][]; for (int i = 0; i < jj_expentries.size(); i++) { - exptokseq[i] = (int[])jj_expentries.elementAt(i); + exptokseq[i] = jj_expentries.elementAt(i); } return new ParseException(token, exptokseq, tokenImage); } Modified: trunk/src/dl-learner/org/dllearner/parser/DLLearnerConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearnerConstants.java 2007-08-27 15:13:33 UTC (rev 65) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearnerConstants.java 2007-08-27 15:20:20 UTC (rev 66) @@ -1,7 +1,7 @@ /* Generated By:JJTree&JavaCC: Do not edit this line. DLLearnerConstants.java */ package org.dllearner.parser; -public interface DLLearnerConstants { +public @SuppressWarnings("all") interface DLLearnerConstants { int EOF = 0; int SINGLE_LINE_COMMENT = 5; Modified: trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java 2007-08-27 15:13:33 UTC (rev 65) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java 2007-08-27 15:20:20 UTC (rev 66) @@ -18,8 +18,7 @@ import org.dllearner.ConfigurationOption; import org.dllearner.utilities.*; -@SuppressWarnings({"all"}) -public class DLLearnerTokenManager implements DLLearnerConstants +public @SuppressWarnings("all") class DLLearnerTokenManager implements DLLearnerConstants { public static java.io.PrintStream debugStream = System.out; public static void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } Modified: trunk/src/dl-learner/org/dllearner/parser/DLLearnerTreeConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearnerTreeConstants.java 2007-08-27 15:13:33 UTC (rev 65) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearnerTreeConstants.java 2007-08-27 15:20:20 UTC (rev 66) @@ -2,7 +2,7 @@ package org.dllearner.parser; -public interface DLLearnerTreeConstants +public @SuppressWarnings("all") interface DLLearnerTreeConstants { public int JJTSTART = 0; public int JJTCONFOPTION = 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2007-08-28 10:55:25
|
Revision: 79 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=79&view=rev Author: jenslehmann Date: 2007-08-28 03:55:23 -0700 (Tue, 28 Aug 2007) Log Message: ----------- build in function to call parser as standalone tool Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java trunk/src/dl-learner/org/dllearner/parser/dllearner.jj trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt Modified: trunk/src/dl-learner/org/dllearner/parser/DLLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java 2007-08-28 10:44:01 UTC (rev 78) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearner.java 2007-08-28 10:55:23 UTC (rev 79) @@ -73,6 +73,14 @@ } } + public static Map<AtomicConcept,SortedSet<Individual>> getPositiveExamples() { + return positiveExamples; + } + + public static Map<AtomicConcept,SortedSet<Individual>> getNegativeExamples() { + return negativeExamples; + } + /* private static void addFunctionCall(String functionName, String argument) { if(functionCalls.containsKey(functionName)) { @@ -127,6 +135,15 @@ return c; } + public static void parseFile(String filename) { + try { + new DLLearner(new FileInputStream(filename)); + DLLearner.Start(); + } catch(Exception e) { + e.printStackTrace(); + } + } + public static void main(String args[]) { if(args.length==0) { @@ -1544,66 +1561,6 @@ finally { jj_save(11, xla); } } - static final private boolean jj_3R_50() { - if (jj_scan_token(LE)) return true; - return false; - } - - static final private boolean jj_3R_47() { - if (jj_scan_token(EXISTS)) return true; - return false; - } - - static final private boolean jj_3R_49() { - if (jj_scan_token(GE)) return true; - return false; - } - - static final private boolean jj_3R_45() { - if (jj_scan_token(BOTTOM)) return true; - return false; - } - - static final private boolean jj_3R_39() { - if (jj_scan_token(NOT)) return true; - return false; - } - - static final private boolean jj_3R_51() { - if (jj_3R_4()) return true; - return false; - } - - static final private boolean jj_3R_48() { - if (jj_scan_token(ALL)) return true; - return false; - } - - static final private boolean jj_3R_46() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_51()) { - jj_scanpos = xsp; - if (jj_3R_52()) return true; - } - return false; - } - - static final private boolean jj_3R_44() { - if (jj_scan_token(TOP)) return true; - return false; - } - - static final private boolean jj_3R_20() { - if (jj_scan_token(AND)) return true; - return false; - } - - static final private boolean jj_3R_21() { - if (jj_scan_token(OR)) return true; - return false; - } - static final private boolean jj_3R_19() { if (jj_3R_4()) return true; return false; @@ -1995,6 +1952,66 @@ return false; } + static final private boolean jj_3R_50() { + if (jj_scan_token(LE)) return true; + return false; + } + + static final private boolean jj_3R_47() { + if (jj_scan_token(EXISTS)) return true; + return false; + } + + static final private boolean jj_3R_49() { + if (jj_scan_token(GE)) return true; + return false; + } + + static final private boolean jj_3R_45() { + if (jj_scan_token(BOTTOM)) return true; + return false; + } + + static final private boolean jj_3R_39() { + if (jj_scan_token(NOT)) return true; + return false; + } + + static final private boolean jj_3R_51() { + if (jj_3R_4()) return true; + return false; + } + + static final private boolean jj_3R_48() { + if (jj_scan_token(ALL)) return true; + return false; + } + + static final private boolean jj_3R_46() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_51()) { + jj_scanpos = xsp; + if (jj_3R_52()) return true; + } + return false; + } + + static final private boolean jj_3R_44() { + if (jj_scan_token(TOP)) return true; + return false; + } + + static final private boolean jj_3R_20() { + if (jj_scan_token(AND)) return true; + return false; + } + + static final private boolean jj_3R_21() { + if (jj_scan_token(OR)) return true; + return false; + } + static private boolean jj_initialized_once = false; static public DLLearnerTokenManager token_source; static SimpleCharStream jj_input_stream; Modified: trunk/src/dl-learner/org/dllearner/parser/dllearner.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/dllearner.jj 2007-08-28 10:44:01 UTC (rev 78) +++ trunk/src/dl-learner/org/dllearner/parser/dllearner.jj 2007-08-28 10:55:23 UTC (rev 79) @@ -91,6 +91,14 @@ } } + public static Map<AtomicConcept,SortedSet<Individual>> getPositiveExamples() { + return positiveExamples; + } + + public static Map<AtomicConcept,SortedSet<Individual>> getNegativeExamples() { + return negativeExamples; + } + /* private static void addFunctionCall(String functionName, String argument) { if(functionCalls.containsKey(functionName)) { @@ -145,6 +153,15 @@ return c; } + public static void parseFile(String filename) { + try { + new DLLearner(new FileInputStream(filename)); + DLLearner.Start(); + } catch(Exception e) { + e.printStackTrace(); + } + } + public static void main(String args[]) { if(args.length==0) { Modified: trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt 2007-08-28 10:44:01 UTC (rev 78) +++ trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt 2007-08-28 10:55:23 UTC (rev 79) @@ -87,6 +87,14 @@ } } + public static Map<AtomicConcept,SortedSet<Individual>> getPositiveExamples() { + return positiveExamples; + } + + public static Map<AtomicConcept,SortedSet<Individual>> getNegativeExamples() { + return negativeExamples; + } + /* private static void addFunctionCall(String functionName, String argument) { if(functionCalls.containsKey(functionName)) { @@ -141,6 +149,15 @@ return c; } + public static void parseFile(String filename) { + try { + new DLLearner(new FileInputStream(filename)); + DLLearner.Start(); + } catch(Exception e) { + e.printStackTrace(); + } + } + public static void main(String args[]) { if(args.length==0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2007-09-25 14:38:46
|
Revision: 153 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=153&view=rev Author: jenslehmann Date: 2007-09-25 07:38:43 -0700 (Tue, 25 Sep 2007) Log Message: ----------- parser changes Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java trunk/src/dl-learner/org/dllearner/parser/dllearner.jj Modified: trunk/src/dl-learner/org/dllearner/parser/DLLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java 2007-09-25 14:32:25 UTC (rev 152) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearner.java 2007-09-25 14:38:43 UTC (rev 153) @@ -18,7 +18,7 @@ import org.dllearner.Main; import org.dllearner.Info; -import org.dllearner.dl.*; +import org.dllearner.core.dl.*; import org.dllearner.ConfigurationOption; import org.dllearner.utilities.*; Modified: trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java 2007-09-25 14:32:25 UTC (rev 152) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java 2007-09-25 14:38:43 UTC (rev 153) @@ -14,7 +14,7 @@ import java.io.StringReader; import org.dllearner.Main; import org.dllearner.Info; -import org.dllearner.dl.*; +import org.dllearner.core.dl.*; import org.dllearner.ConfigurationOption; import org.dllearner.utilities.*; Modified: trunk/src/dl-learner/org/dllearner/parser/dllearner.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/dllearner.jj 2007-09-25 14:32:25 UTC (rev 152) +++ trunk/src/dl-learner/org/dllearner/parser/dllearner.jj 2007-09-25 14:38:43 UTC (rev 153) @@ -33,7 +33,7 @@ import org.dllearner.Main; import org.dllearner.Info; -import org.dllearner.dl.*; +import org.dllearner.core.dl.*; import org.dllearner.ConfigurationOption; import org.dllearner.utilities.*; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2007-10-02 15:30:41
|
Revision: 161 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=161&view=rev Author: jenslehmann Date: 2007-10-02 08:30:37 -0700 (Tue, 02 Oct 2007) Log Message: ----------- parser split between Conf file and KB file parser, small improvements (warning: intermediate commit) Added Paths: ----------- trunk/src/dl-learner/org/dllearner/parser/ConfParser.java trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java trunk/src/dl-learner/org/dllearner/parser/ConfParserTreeConstants.java trunk/src/dl-learner/org/dllearner/parser/JJTConfParserState.java trunk/src/dl-learner/org/dllearner/parser/JJTKBParserState.java trunk/src/dl-learner/org/dllearner/parser/KBParser.java trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java trunk/src/dl-learner/org/dllearner/parser/KBParserTreeConstants.java trunk/src/dl-learner/org/dllearner/parser/conf.jj trunk/src/dl-learner/org/dllearner/parser/conf.jjt trunk/src/dl-learner/org/dllearner/parser/kb.jj trunk/src/dl-learner/org/dllearner/parser/kb.jjt Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java trunk/src/dl-learner/org/dllearner/parser/DLLearnerConstants.java trunk/src/dl-learner/org/dllearner/parser/DLLearnerTokenManager.java trunk/src/dl-learner/org/dllearner/parser/JJTDLLearnerState.java trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt Added: trunk/src/dl-learner/org/dllearner/parser/ConfParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParser.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParser.java 2007-10-02 15:30:37 UTC (rev 161) @@ -0,0 +1,1108 @@ +/* Generated By:JJTree&JavaCC: Do not edit this line. ConfParser.java */ +package org.dllearner.parser; + +import java.util.List; +import java.util.LinkedList; +import java.util.Map; +import java.util.TreeMap; +import java.util.Set; +import java.util.HashSet; +import java.util.SortedSet; +import java.util.TreeSet; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.StringReader; + +import org.dllearner.Main; +import org.dllearner.Info; + +import org.dllearner.core.dl.*; +import org.dllearner.ConfigurationOption; +import org.dllearner.utilities.*; + +public @SuppressWarnings("all") class ConfParser/*@bgen(jjtree)*/implements ConfParserTreeConstants, ConfParserConstants {/*@bgen(jjtree)*/ + protected JJTConfParserState jjtree = new JJTConfParserState(); + private SortedSet<Individual> positiveExamples = new TreeSet<Individual>(); + private SortedSet<Individual> negativeExamples = new TreeSet<Individual>(); + + // Konfigurationsoptionen + private List<ConfigurationOption> confOptions = new LinkedList<ConfigurationOption>(); + + // Funktionsaufrufe (die gleiche Funktion darf mehrmals mit unterschiedlichen + // Argumenten aufgerufen werden) + // private static Map<String,Set<String>> functionCallsAlt = new TreeMap<String,Set<String>>(); + // jeder Funktionsaufruf hat eine Liste von n Argumenten; alle Funktionsaufrufe + // werden in einer Liste gespeichert + private List<List<String>> functionCalls = new LinkedList<List<String>>(); + // => irgendwie Funktionsname + Argumente speichern + // => d.h. man bräuchte für jede Funktion so eine Liste oder das erste Element + // der Liste ist der Funktionsname <= ist noch die praktikabelste Variante + + // speichert, ob der Parser-Konstruktor aufgerufen wurde: momemtan handelt es + // sich um einen statischen Parser, d.h. der Konstruktor darf nur einmal + // aufgerufen werden; weitere Parsevorgänge erfolgen dann mit ReInit + // TODO: bei einem Webservice braucht man wahrscheinlich einen dynamischen Parser + // private static boolean constructorCalled = false; + + // Wissensbasis + // private KB kb = new KB(); + // public static final String internalNamespace = "http://localhost/foo#"; + + public SortedSet<Individual> getPositiveExamples() { + return positiveExamples; + } + + public SortedSet<Individual> getNegativeExamples() { + return negativeExamples; + } + + public List<ConfigurationOption> getConfOptions() { + return confOptions; + } + + public List<List<String>> getFunctionCalls() { + return functionCalls; + } + + /* + private static void addFunctionCall(String functionName, String argument) { + if(functionCalls.containsKey(functionName)) { + functionCalls.get(functionName).add(argument); + } else { + Set<String> newFunction = new TreeSet<String>(); + newFunction.add(argument); + functionCalls.put(functionName,newFunction); + } + } + */ + + + + public static SimpleNode parseString(String str) throws ParseException { + StringReader sr = new StringReader(str); + DLLearner learner = new DLLearner(sr); + SimpleNode n = learner.Start(); + return n; + } + + public static DLLearner parseFile(String filename) { + DLLearner learner = null; + try { + learner = new DLLearner(new FileInputStream(filename)); + learner.Start(); + } catch(FileNotFoundException e) { + e.printStackTrace(); + } catch(ParseException e) { + e.printStackTrace(); + } + return learner; + } + + public static void main(String args[]) { + + if(args.length==0) { + System.out.println("Please specify an input file."); + System.exit(0); + } + + System.out.println("Starting DL-Learner (Build " + Info.build + ")"); + // System.out.println(args); + + // System.out.println(args[0]); + // System.out.println(args[1]); + // System.out.println(args.length); + + File f = new File(args[args.length-1]); + String baseDir = ""; + + System.out.print("Parsing " + f.getName() + " ... "); + long parseStartTime = System.currentTimeMillis(); + + SimpleNode n = null; + DLLearner learner = null; + try { + learner = new DLLearner(new FileInputStream(args[args.length-1])); + baseDir = f.getParentFile().getPath(); + } catch(IOException e) { + System.err.println(e); + System.exit(0); + } + try { + n = learner.Start(); + // n.dump(""); + // System.out.println("Thank you."); + } catch (Exception e) { + System.out.println("\nParse exception occurred. Please follow the advise given below."); + System.out.println(e.getMessage()); + e.printStackTrace(); + System.exit(0); + } + + long parseDuration = System.currentTimeMillis() - parseStartTime; + System.out.println("OK (" + parseDuration + " ms)"); + + boolean queryMode = false; + // solution test mode wird nicht unbedingt gebraucht, da man die covers + // gleich standardmäßig beim query mit anzeigen kann + // boolean solutionTestMode = false; + + if(args.length>1 && args[0].equals("-q")) + queryMode = true; + + //if(args.length>1 && args[0].equals("-qt")) { + // queryMode = true; + // solutionTestMode = true; + //} + + // new Main(n, baseDir, queryMode); + // Parser erstmal Standalone testen + // n.dump(""); + + // neuer Aufruf des Hauptprogramms + // TODO: remove (in the future, the parser will be called from whatever method + // needs it, instead of starting the learning process itself) + // new Main(kb,positiveExamples,negativeExamples,confOptions,functionCalls,baseDir,queryMode); + } + + final public SimpleNode Start() throws ParseException { + /*@bgen(jjtree) Start */ + SimpleNode jjtn000 = new SimpleNode(JJTSTART); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);ConceptAssertion conceptAssertion; + RoleAssertion roleAssertion; + RBoxAxiom rBoxAxiom; + Equality equality; + Inclusion inclusion; + ConfigurationOption confOption; + try { + label_1: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case POS_EX: + case NEG_EX: + case ID: + ; + break; + default: + jj_la1[0] = jj_gen; + break label_1; + } + if (jj_2_1(2147483647)) { + confOption = ConfOption(); + confOptions.add(confOption); + } else if (jj_2_2(2147483647)) { + FunctionCall(); + } else if (jj_2_3(2147483647)) { + PosExample(); + } else if (jj_2_4(2147483647)) { + NegExample(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + jj_consume_token(0); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + {if (true) return jjtn000;} + } catch (Throwable jjte000) { + if (jjtc000) { + jjtree.clearNodeScope(jjtn000); + jjtc000 = false; + } else { + jjtree.popNode(); + } + if (jjte000 instanceof RuntimeException) { + {if (true) throw (RuntimeException)jjte000;} + } + if (jjte000 instanceof ParseException) { + {if (true) throw (ParseException)jjte000;} + } + {if (true) throw (Error)jjte000;} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + throw new Error("Missing return statement in function"); + } + + final public ConfigurationOption ConfOption() throws ParseException { + /*@bgen(jjtree) ConfOption */ + SimpleNode jjtn000 = new SimpleNode(JJTCONFOPTION); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);boolean containsSubOption=false, isNumeric=false, isDouble=false, isSet=false; + String option="", subOption="", value="", tmp=""; + int number = 0; + double numberDouble = 0; + ConfigurationOption confOption; + Set<String> values = new HashSet<String>(); + try { + option = Id(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMAND_END: + jj_consume_token(COMMAND_END); + subOption = Id(); + containsSubOption=true; + break; + default: + jj_la1[1] = jj_gen; + ; + } + jj_consume_token(25); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + value = Id(); + break; + case STRING: + value = String(); + break; + case NUMBER: + number = Integer(); + isNumeric=true; + break; + case DOUBLE: + numberDouble = Double(); + isNumeric=true; isDouble=true; + break; + default: + jj_la1[4] = jj_gen; + if (jj_2_6(2147483647)) { + jj_consume_token(26); + jj_consume_token(27); + isSet=true; + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 26: + jj_consume_token(26); + label_2: + while (true) { + if (jj_2_5(2)) { + ; + } else { + break label_2; + } + 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(); + } + values.add(tmp); + jj_consume_token(28); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STRING: + tmp = String(); + break; + case ID: + tmp = Id(); + break; + default: + jj_la1[3] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + values.add(tmp); + jj_consume_token(27); + isSet=true; + break; + default: + jj_la1[5] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + } + jj_consume_token(CONF_END); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + if(containsSubOption) { + if(isNumeric) + if(isDouble) + confOption = new ConfigurationOption(option,subOption,numberDouble); + else + confOption = new ConfigurationOption(option,subOption,number); + else + if(isSet) + confOption = new ConfigurationOption(option,subOption,values); + else + confOption = new ConfigurationOption(option,subOption,value); + } else { + if(isNumeric) + if(isDouble) + confOption = new ConfigurationOption(option,numberDouble); + else + confOption = new ConfigurationOption(option,number); + else + if(isSet) + confOption = new ConfigurationOption(option,values); + else + confOption = new ConfigurationOption(option,value); + } + {if (true) return confOption;} + // confOptions.add(confOption); + + } catch (Throwable jjte000) { + if (jjtc000) { + jjtree.clearNodeScope(jjtn000); + jjtc000 = false; + } else { + jjtree.popNode(); + } + if (jjte000 instanceof RuntimeException) { + {if (true) throw (RuntimeException)jjte000;} + } + if (jjte000 instanceof ParseException) { + {if (true) throw (ParseException)jjte000;} + } + {if (true) throw (Error)jjte000;} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + throw new Error("Missing return statement in function"); + } + + final public void FunctionCall() throws ParseException { + /*@bgen(jjtree) FunctionCall */ + SimpleNode jjtn000 = new SimpleNode(JJTFUNCTIONCALL); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);String s, s1, s2; + List<String> list = new LinkedList<String>(); + try { + s1 = Id(); + jj_consume_token(29); + s2 = String(); + list.add(s1); list.add(s2); + label_3: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 28: + ; + break; + default: + jj_la1[6] = jj_gen; + break label_3; + } + jj_consume_token(28); + s = String(); + list.add(s); + } + jj_consume_token(30); + jj_consume_token(CONF_END); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + functionCalls.add(list); + } catch (Throwable jjte000) { + if (jjtc000) { + jjtree.clearNodeScope(jjtn000); + jjtc000 = false; + } else { + jjtree.popNode(); + } + if (jjte000 instanceof RuntimeException) { + {if (true) throw (RuntimeException)jjte000;} + } + if (jjte000 instanceof ParseException) { + {if (true) throw (ParseException)jjte000;} + } + {if (true) throw (Error)jjte000;} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + } + + final public void PosExample() throws ParseException { + /*@bgen(jjtree) PosExample */ + SimpleNode jjtn000 = new SimpleNode(JJTPOSEXAMPLE); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);Individual i; + try { + jj_consume_token(POS_EX); + i = Individual(); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + positiveExamples.add(i); + } catch (Throwable jjte000) { + if (jjtc000) { + jjtree.clearNodeScope(jjtn000); + jjtc000 = false; + } else { + jjtree.popNode(); + } + if (jjte000 instanceof RuntimeException) { + {if (true) throw (RuntimeException)jjte000;} + } + if (jjte000 instanceof ParseException) { + {if (true) throw (ParseException)jjte000;} + } + {if (true) throw (Error)jjte000;} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + } + + final public void NegExample() throws ParseException { + /*@bgen(jjtree) NegExample */ + SimpleNode jjtn000 = new SimpleNode(JJTNEGEXAMPLE); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);Individual i; + try { + jj_consume_token(NEG_EX); + i = Individual(); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + negativeExamples.add(i); + } catch (Throwable jjte000) { + if (jjtc000) { + jjtree.clearNodeScope(jjtn000); + jjtc000 = false; + } else { + jjtree.popNode(); + } + if (jjte000 instanceof RuntimeException) { + {if (true) throw (RuntimeException)jjte000;} + } + if (jjte000 instanceof ParseException) { + {if (true) throw (ParseException)jjte000;} + } + {if (true) throw (Error)jjte000;} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + } + + final public Individual Individual() throws ParseException { + /*@bgen(jjtree) Individual */ + SimpleNode jjtn000 = new SimpleNode(JJTINDIVIDUAL); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);String name; + try { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + name = Id(); + break; + case STRING: + name = String(); + break; + default: + jj_la1[7] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + {if (true) return new Individual(KBParser.getInternalURI(name));} + } catch (Throwable jjte000) { + if (jjtc000) { + jjtree.clearNodeScope(jjtn000); + jjtc000 = false; + } else { + jjtree.popNode(); + } + if (jjte000 instanceof RuntimeException) { + {if (true) throw (RuntimeException)jjte000;} + } + if (jjte000 instanceof ParseException) { + {if (true) throw (ParseException)jjte000;} + } + {if (true) throw (Error)jjte000;} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + throw new Error("Missing return statement in function"); + } + + final public String Id() throws ParseException { + /*@bgen(jjtree) Id */ + SimpleNode jjtn000 = new SimpleNode(JJTID); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);Token t; + try { + t = jj_consume_token(ID); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + {if (true) return t.image;} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + throw new Error("Missing return statement in function"); + } + + final public double Double() throws ParseException { + /*@bgen(jjtree) Double */ + SimpleNode jjtn000 = new SimpleNode(JJTDOUBLE); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);Token t; + try { + t = jj_consume_token(DOUBLE); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + {if (true) return new Double(t.image);} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + throw new Error("Missing return statement in function"); + } + + final public int Integer() throws ParseException { + /*@bgen(jjtree) Integer */ + SimpleNode jjtn000 = new SimpleNode(JJTINTEGER); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);Token t; + try { + t = jj_consume_token(NUMBER); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + {if (true) return new Integer(t.image);} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + throw new Error("Missing return statement in function"); + } + + final public String String() throws ParseException { + /*@bgen(jjtree) String */ + SimpleNode jjtn000 = new SimpleNode(JJTSTRING); + boolean jjtc000 = true; + jjtree.openNodeScope(jjtn000);Token t; + String s; + try { + t = jj_consume_token(STRING); + jjtree.closeNodeScope(jjtn000, true); + jjtc000 = false; + // enclosing "" are removed + s = t.image; + s = s.substring(1, s.length() - 1); + {if (true) return s;} + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } + throw new Error("Missing return statement in function"); + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final private boolean jj_3R_7() { + if (jj_3R_16()) return true; + return false; + } + + final private boolean jj_3R_4() { + if (jj_scan_token(ID)) return true; + return false; + } + + final private boolean jj_3R_6() { + if (jj_3R_4()) return true; + return false; + } + + final private boolean jj_3R_22() { + if (jj_3R_4()) return true; + return false; + } + + final private boolean jj_3_6() { + if (jj_scan_token(26)) return true; + if (jj_scan_token(27)) return true; + return false; + } + + final private boolean jj_3R_13() { + if (jj_scan_token(28)) return true; + if (jj_3R_12()) return true; + return false; + } + + final private boolean jj_3_5() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_14()) { + jj_scanpos = xsp; + if (jj_3R_15()) return true; + } + if (jj_scan_token(28)) return true; + return false; + } + + final private boolean jj_3R_12() { + if (jj_scan_token(STRING)) return true; + return false; + } + + final private boolean jj_3R_21() { + if (jj_3R_12()) return true; + return false; + } + + final private boolean jj_3R_18() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_21()) { + jj_scanpos = xsp; + if (jj_3R_22()) return true; + } + if (jj_scan_token(28)) return true; + return false; + } + + final private boolean jj_3R_9() { + if (jj_3R_12()) return true; + return false; + } + + final private boolean jj_3R_5() { + if (jj_scan_token(COMMAND_END)) return true; + if (jj_3R_4()) return true; + return false; + } + + final private boolean jj_3_4() { + if (jj_scan_token(NEG_EX)) return true; + return false; + } + + final private boolean jj_3_3() { + if (jj_scan_token(POS_EX)) return true; + return false; + } + + final private boolean jj_3R_11() { + if (jj_scan_token(26)) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_18()) { jj_scanpos = xsp; break; } + } + xsp = jj_scanpos; + if (jj_3R_19()) { + jj_scanpos = xsp; + if (jj_3R_20()) return true; + } + if (jj_scan_token(27)) return true; + return false; + } + + final private boolean jj_3R_16() { + if (jj_scan_token(NUMBER)) return true; + return false; + } + + final private boolean jj_3R_20() { + if (jj_3R_4()) return true; + return false; + } + + final private boolean jj_3_2() { + if (jj_3R_4()) return true; + if (jj_scan_token(29)) return true; + if (jj_3R_12()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_13()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(30)) return true; + if (jj_scan_token(CONF_END)) return true; + return false; + } + + final private boolean jj_3R_15() { + if (jj_3R_4()) return true; + return false; + } + + final private boolean jj_3_1() { + if (jj_3R_4()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_5()) jj_scanpos = xsp; + if (jj_scan_token(25)) return true; + xsp = jj_scanpos; + if (jj_3R_6()) { + jj_scanpos = xsp; + if (jj_3R_7()) { + jj_scanpos = xsp; + if (jj_3R_8()) { + jj_scanpos = xsp; + if (jj_3R_9()) { + jj_scanpos = xsp; + if (jj_3R_10()) { + jj_scanpos = xsp; + if (jj_3R_11()) return true; + } + } + } + } + } + if (jj_scan_token(CONF_END)) return true; + return false; + } + + final private boolean jj_3R_8() { + if (jj_3R_17()) return true; + return false; + } + + final private boolean jj_3R_10() { + if (jj_scan_token(26)) return true; + if (jj_scan_token(27)) return true; + return false; + } + + final private boolean jj_3R_17() { + if (jj_scan_token(DOUBLE)) return true; + return false; + } + + final private boolean jj_3R_19() { + if (jj_3R_12()) return true; + return false; + } + + final private boolean jj_3R_14() { + if (jj_3R_12()) return true; + return false; + } + + public ConfParserTokenManager token_source; + SimpleCharStream jj_input_stream; + public Token token, jj_nt; + private int jj_ntk; + private Token jj_scanpos, jj_lastpos; + private int jj_la; + public boolean lookingAhead = false; + private boolean jj_semLA; + private int jj_gen; + final private int[] jj_la1 = new int[8]; + static private int[] jj_la1_0; + static { + jj_la1_0(); + } + private static void jj_la1_0() { + jj_la1_0 = new int[] {0x1c00,0x100,0x1001000,0x1001000,0x1007000,0x4000000,0x10000000,0x1001000,}; + } + final private JJCalls[] jj_2_rtns = new JJCalls[6]; + private boolean jj_rescan = false; + private int jj_gc = 0; + + public ConfParser(java.io.InputStream stream) { + this(stream, null); + } + 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 < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(java.io.InputStream stream) { + ReInit(stream, null); + } + 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; + jjtree.reset(); + jj_gen = 0; + for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + 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 < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + 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; + jjtree.reset(); + jj_gen = 0; + for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public ConfParser(ConfParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(ConfParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jjtree.reset(); + jj_gen = 0; + for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + final 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(); + final 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; + } + + 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; + } + + final public Token getToken(int index) { + Token t = lookingAhead ? jj_scanpos : token; + for (int i = 0; i < index; i++) { + if (t.next != null) t = t.next; + else t = t.next = token_source.getNextToken(); + } + return t; + } + + final 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.Vector jj_expentries = new java.util.Vector(); + 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]; + } + boolean exists = false; + for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) { + int[] oldentry = (int[])(e.nextElement()); + if (oldentry.length == jj_expentry.length) { + exists = true; + for (int i = 0; i < jj_expentry.length; i++) { + if (oldentry[i] != jj_expentry[i]) { + exists = false; + break; + } + } + if (exists) break; + } + } + if (!exists) jj_expentries.addElement(jj_expentry); + if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; + } + } + + public ParseException generateParseException() { + jj_expentries.removeAllElements(); + boolean[] la1tokens = new boolean[31]; + if (jj_kind >= 0) { + la1tokens[jj_kind] = true; + jj_kind = -1; + } + for (int i = 0; i < 8; 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 < 31; i++) { + if (la1tokens[i]) { + jj_expentry = new int[1]; + jj_expentry[0] = i; + jj_expentries.addElement(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] = (int[])jj_expentries.elementAt(i); + } + return new ParseException(token, exptokseq, tokenImage); + } + + final public void enable_tracing() { + } + + final public void disable_tracing() { + } + + final private void jj_rescan_token() { + jj_rescan = true; + for (int i = 0; i < 6; 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; + } + } + p = p.next; + } while (p != null); + } catch(LookaheadSuccess ls) { } + } + jj_rescan = false; + } + + final 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/src/dl-learner/org/dllearner/parser/ConfParserConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java 2007-10-02 15:30:37 UTC (rev 161) @@ -0,0 +1,64 @@ +/* Generated By:JJTree&JavaCC: Do not edit this line. ConfParserConstants.java */ +package org.dllearner.parser; + +public @SuppressWarnings("all") interface ConfParserConstants { + + int EOF = 0; + int SINGLE_LINE_COMMENT = 5; + int FORMAL_COMMENT = 6; + int MULTI_LINE_COMMENT = 7; + int COMMAND_END = 8; + int CONF_END = 9; + int POS_EX = 10; + int NEG_EX = 11; + int ID = 12; + int NUMBER = 13; + int DOUBLE = 14; + int TOP = 15; + int BOTTOM = 16; + int AND = 17; + int OR = 18; + int EXISTS = 19; + int ALL = 20; + int NOT = 21; + int GE = 22; + int LE = 23; + int STRING = 24; + + int DEFAULT = 0; + + 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/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java 2007-10-02 15:30:37 UTC (rev 161) @@ -0,0 +1,755 @@ +/* Generated By:JJTree&JavaCC: Do not edit this line. ConfParserTokenManager.java */ +package org.dllearner.parser; +import java.util.List; +import java.util.LinkedList; +import java.util.Map; +import java.util.TreeMap; +import java.util.Set; +import java.util.HashSet; +import java.util.SortedSet; +import java.util.TreeSet; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.StringReader; +import org.dllearner.Main; +import org.dllearner.Info; +import org.dllearner.core.dl.*; +import org.dllearner.ConfigurationOption; +import org.dllearner.utilities.*; + +public @SuppressWarnings("all") class ConfParserTokenManager implements ConfParserConstants +{ + public java.io.PrintStream debugStream = System.out; + 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 final int jjStopAtPos(int pos, int kind) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + return pos + 1; +} +private final 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); +} +private final int jjMoveStringLiteralDfa0_0() +{ + switch(curChar) + { + case 40: + return jjStopAtPos(0, 29); + case 41: + return jjStopAtPos(0, 30); + 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 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 123: + return jjStopAtPos(0, 26); + case 125: + return jjStopAtPos(0, 27); + default : + return jjMoveNfa_0(0, 0); + } +} +private final 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 final 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 final 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 final 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 final 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); +} +private final void jjCheckNAdd(int state) +{ + if (jjrounds[state] != jjround) + { + jjstateSet[jjnewStateCnt++] = state; + jjrounds[state] = jjround; + } +} +private final void jjAddStates(int start, int end) +{ + do { + jjstateSet[jjnewStateCnt++] = jjnextStates[start]; + } while (start++ != end); +} +private final void jjCheckNAddTwoStates(int state1, int state2) +{ + jjCheckNAdd(state1); + jjCheckNAdd(state2); +} +private final void jjCheckNAddStates(int start, int end) +{ + do { + jjCheckNAdd(jjnextStates[start]); + } while (start++ != end); +} +private final void jjCheckNAddStates(int start) +{ + jjCheckNAdd(jjnextStates[start]); + jjCheckNAdd(jjnextStates[start + 1]); +} +static final long[] jjbitVec0 = { + 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +private final int jjMoveNfa_0(int startState, int curPos) +{ + int[] nextStates; + int startsAt = 0; + jjnewStateCnt = 53; + int i = 1; + jjstateSet[0] = startState; + int j, kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + long l = 1L << curChar; + MatchLoop: 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); + MatchLoop: 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); + MatchLoop: 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, +}; +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", "\50", +"\51", }; +public static final String[] lexStateNames = { + "DEFAULT", +}; +static final long[] jjtoToken = { + 0x7fffff01L, +}; +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; +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; +} +public ConfParserTokenManager(SimpleCharStream stream, int lexState){ + this(stream); + SwitchTo(lexState); +} +public void ReInit(SimpleCharStream stream) +{ + jjmatchedPos = jjnewStateCnt = 0; + curLexState = defaultLexState; + input_stream = stream; + ReInitRounds(); +} +private final void ReInitRounds() +{ + int i; + jjround = 0x80000001; + for (i = 53; i-- > 0;) + jjrounds[i] = 0x80000000; +} +public void ReInit(SimpleCharStream stream, int lexState) +{ + ReInit(stream); + SwitchTo(lexState); +} +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() +{ + Token t = Token.newToken(jjmatchedKind); + t.kind = jjmatchedKind; + String im = jjstrLiteralImages[jjmatchedKind]; + t.image = (im == null) ? input_stream.GetImage() : im; + t.beginLine = input_stream.getBeginLine(); + t.beginColumn = input_stream.getBeginColumn(); + t.endLine = input_stream.getEndLine(); + t.endColumn = input_stream.getEndColumn(); + return t; +} + +int curLexState = 0; +int defaultLexState = 0; +int jjnewStateCnt; +int jjround; +int jjmatchedPos; +int jjmatchedKind; + +public Token getNextToken() +{ + int kind; + Token specialToken = null; + 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 ?... [truncated message content] |
From: <jen...@us...> - 2007-10-03 07:46:56
|
Revision: 164 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=164&view=rev Author: jenslehmann Date: 2007-10-03 00:46:54 -0700 (Wed, 03 Oct 2007) Log Message: ----------- move from JJTree to standard JavaCC parsing completed (this is done because JJTree features are not needed anymore) Added Paths: ----------- trunk/src/dl-learner/org/dllearner/parser/ParseException.java trunk/src/dl-learner/org/dllearner/parser/SimpleCharStream.java trunk/src/dl-learner/org/dllearner/parser/Token.java trunk/src/dl-learner/org/dllearner/parser/TokenMgrError.java trunk/src/dl-learner/org/dllearner/parser/conf.jj trunk/src/dl-learner/org/dllearner/parser/kb.jj Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/parser/confttest.jj trunk/src/dl-learner/org/dllearner/parser/kbtest.jj Added: trunk/src/dl-learner/org/dllearner/parser/ParseException.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ParseException.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/ParseException.java 2007-10-03 07:46:54 UTC (rev 164) @@ -0,0 +1,192 @@ +/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 3.0 */ +package org.dllearner.parser; + +/** + * 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 @SuppressWarnings("all") class ParseException extends Exception { + + /** + * This constructor is used by the method "generateParseException" + * in the generated parser. Calling this constructor generates + * a new object of this type with the fields "currentToken", + * "expectedTokenSequences", and "tokenImage" set. The boolean + * flag "specialConstructor" is also set to true to indicate that + * this constructor was used to create this object. + * This constructor calls its super class with the empty string + * to force the "toString" method of parent class "Throwable" to + * print the error message in the form: + * ParseException: <result of getMessage> + */ + public ParseException(Token currentTokenVal, + int[][] expectedTokenSequencesVal, + String[] tokenImageVal + ) + { + super(""); + specialConstructor = true; + currentToken = currentTokenVal; + expectedTokenSequences = expectedTokenSequencesVal; + tokenImage = tokenImageVal; + } + + /** + * The following constructors are for use by you for whatever + * purpose you can think of. Constructing the exception in this + * manner makes the exception behave in the normal way - i.e., as + * documented in the class "Throwable". The fields "errorToken", + * "expectedTokenSequences", and "tokenImage" do not contain + * relevant information. The JavaCC generated code does not use + * these constructors. + */ + + public ParseException() { + super(); + specialConstructor = false; + } + + public ParseException(String message) { + super(message); + specialConstructor = false; + } + + /** + * This variable determines which constructor was used to create + * this object and thereby affects the semantics of the + * "getMessage" method (see below). + */ + protected boolean specialConstructor; + + /** + * This is the last token that has been consumed successfully. If + * this object has been created due to a parse error, the token + * followng this token will (therefore) be the first error token. + */ + public Token currentToken; + + /** + * Each entry in this array is an array of integers. Each array + * of integers represents a sequence of tokens (by their ordinal + * values) that is expected at this point of the parse. + */ + public int[][] expectedTokenSequences; + + /** + * This is a reference to the "tokenImage" array of the generated + * parser within which the parse error occurred. This array is + * defined in the generated ...Constants interface. + */ + public String[] tokenImage; + + /** + * This method has the standard behavior when this object has been + * created using the standard constructors. Otherwise, it uses + * "currentToken" and "expectedTokenSequences" to generate a parse + * error message and returns it. If this object has been created + * due to a parse error, and you do not catch it (it gets thrown + * from the parser), then this method is called during the printing + * of the final stack trace, and hence the correct error message + * gets displayed. + */ + public String getMessage() { + if (!specialConstructor) { + return super.getMessage(); + } + StringBuffer expected = new StringBuffer(); + int maxSize = 0; + for (int i = 0; i < expectedTokenSequences.length; i++) { + if (maxSize < expectedTokenSequences[i].length) { + maxSize = expectedTokenSequences[i].length; + } + for (int j = 0; j < expectedTokenSequences[i].length; j++) { + expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' '); + } + if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) { + expected.append("..."); + } + expected.append(eol).append(" "); + } + String retval = "Encountered \""; + Token tok = currentToken.next; + for (int i = 0; i < maxSize; i++) { + if (i != 0) retval += " "; + if (tok.kind == 0) { + retval += tokenImage[0]; + break; + } + retval += add_escapes(tok.image); + tok = tok.next; + } + retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn; + retval += "." + eol; + if (expectedTokenSequences.length == 1) { + retval += "Was expecting:" + eol + " "; + } else { + retval += "Was expecting one of:" + eol + " "; + } + retval += expected.toString(); + return retval; + } + + /** + * The end of line string for this machine. + */ + protected String eol = System.getProperty("line.separator", "\n"); + + /** + * Used to convert raw characters to their escaped version + * when these raw version cannot be used as part of an ASCII + * string literal. + */ + protected String add_escapes(String str) { + StringBuffer retval = new StringBuffer(); + char ch; + for (int i = 0; i < str.length(); i++) { + switch (str.charAt(i)) + { + case 0 : + continue; + case '\b': + retval.append("\\b"); + continue; + case '\t': + retval.append("\\t"); + continue; + case '\n': + retval.append("\\n"); + continue; + case '\f': + retval.append("\\f"); + continue; + case '\r': + retval.append("\\r"); + continue; + case '\"': + retval.append("\\\""); + continue; + case '\'': + retval.append("\\\'"); + continue; + case '\\': + retval.append("\\\\"); + continue; + default: + if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { + String s = "0000" + Integer.toString(ch, 16); + retval.append("\\u" + s.substring(s.length() - 4, s.length())); + } else { + retval.append(ch); + } + continue; + } + } + return retval.toString(); + } + +} Added: trunk/src/dl-learner/org/dllearner/parser/SimpleCharStream.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/SimpleCharStream.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/SimpleCharStream.java 2007-10-03 07:46:54 UTC (rev 164) @@ -0,0 +1,439 @@ +/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 4.0 */ +package org.dllearner.parser; + +/** + * An implementation of interface CharStream, where the stream is assumed to + * contain only ASCII characters (without unicode processing). + */ + +public @SuppressWarnings("all") class SimpleCharStream +{ + public static final boolean staticFlag = false; + int bufsize; + int available; + int tokenBegin; + public int bufpos = -1; + protected int bufline[]; + protected int bufcolumn[]; + + protected int column = 0; + protected int line = 1; + + protected boolean prevCharIsCR = false; + protected boolean prevCharIsLF = false; + + protected java.io.Reader inputStream; + + protected char[] buffer; + protected int maxNextCharInd = 0; + protected int inBuf = 0; + protected int tabSize = 8; + + protected void setTabSize(int i) { tabSize = i; } + protected int getTabSize(int i) { return tabSize; } + + + protected void ExpandBuff(boolean wrapAround) + { + char[] newbuffer = new char[bufsize + 2048]; + int newbufline[] = new int[bufsize + 2048]; + int newbufcolumn[] = new int[bufsize + 2048]; + + try + { + if (wrapAround) + { + System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); + System.arraycopy(buffer, 0, newbuffer, + bufsize - tokenBegin, bufpos); + buffer = newbuffer; + + System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); + System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos); + bufline = newbufline; + + System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); + System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos); + bufcolumn = newbufcolumn; + + maxNextCharInd = (bufpos += (bufsize - tokenBegin)); + } + else + { + System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); + buffer = newbuffer; + + System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); + bufline = newbufline; + + System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); + bufcolumn = newbufcolumn; + + maxNextCharInd = (bufpos -= tokenBegin); + } + } + catch (Throwable t) + { + throw new Error(t.getMessage()); + } + + + bufsize += 2048; + available = bufsize; + tokenBegin = 0; + } + + protected void FillBuff() throws java.io.IOException + { + if (maxNextCharInd == available) + { + if (available == bufsize) + { + if (tokenBegin > 2048) + { + bufpos = maxNextCharInd = 0; + available = tokenBegin; + } + else if (tokenBegin < 0) + bufpos = maxNextCharInd = 0; + else + ExpandBuff(false); + } + else if (available > tokenBegin) + available = bufsize; + else if ((tokenBegin - available) < 2048) + ExpandBuff(true); + else + available = tokenBegin; + } + + int i; + try { + if ((i = inputStream.read(buffer, maxNextCharInd, + available - maxNextCharInd)) == -1) + { + inputStream.close(); + throw new java.io.IOException(); + } + else + maxNextCharInd += i; + return; + } + catch(java.io.IOException e) { + --bufpos; + backup(0); + if (tokenBegin == -1) + tokenBegin = bufpos; + throw e; + } + } + + public char BeginToken() throws java.io.IOException + { + tokenBegin = -1; + char c = readChar(); + tokenBegin = bufpos; + + return c; + } + + protected void UpdateLineColumn(char c) + { + column++; + + if (prevCharIsLF) + { + prevCharIsLF = false; + line += (column = 1); + } + else if (prevCharIsCR) + { + prevCharIsCR = false; + if (c == '\n') + { + prevCharIsLF = true; + } + else + line += (column = 1); + } + + switch (c) + { + case '\r' : + prevCharIsCR = true; + break; + case '\n' : + prevCharIsLF = true; + break; + case '\t' : + column--; + column += (tabSize - (column % tabSize)); + break; + default : + break; + } + + bufline[bufpos] = line; + bufcolumn[bufpos] = column; + } + + public char readChar() throws java.io.IOException + { + if (inBuf > 0) + { + --inBuf; + + if (++bufpos == bufsize) + bufpos = 0; + + return buffer[bufpos]; + } + + if (++bufpos >= maxNextCharInd) + FillBuff(); + + char c = buffer[bufpos]; + + UpdateLineColumn(c); + return c; + } + + /** + * @deprecated + * @see #getEndColumn + */ + + public int getColumn() { + return bufcolumn[bufpos]; + } + + /** + * @deprecated + * @see #getEndLine + */ + + public int getLine() { + return bufline[bufpos]; + } + + public int getEndColumn() { + return bufcolumn[bufpos]; + } + + public int getEndLine() { + return bufline[bufpos]; + } + + public int getBeginColumn() { + return bufcolumn[tokenBegin]; + } + + public int getBeginLine() { + return bufline[tokenBegin]; + } + + public void backup(int amount) { + + inBuf += amount; + if ((bufpos -= amount) < 0) + bufpos += bufsize; + } + + public SimpleCharStream(java.io.Reader dstream, int startline, + int startcolumn, int buffersize) + { + inputStream = dstream; + line = startline; + column = startcolumn - 1; + + available = bufsize = buffersize; + buffer = new char[buffersize]; + bufline = new int[buffersize]; + bufcolumn = new int[buffersize]; + } + + public SimpleCharStream(java.io.Reader dstream, int startline, + int startcolumn) + { + this(dstream, startline, startcolumn, 4096); + } + + public SimpleCharStream(java.io.Reader dstream) + { + this(dstream, 1, 1, 4096); + } + public void ReInit(java.io.Reader dstream, int startline, + int startcolumn, int buffersize) + { + inputStream = dstream; + line = startline; + column = startcolumn - 1; + + if (buffer == null || buffersize != buffer.length) + { + available = bufsize = buffersize; + buffer = new char[buffersize]; + bufline = new int[buffersize]; + bufcolumn = new int[buffersize]; + } + prevCharIsLF = prevCharIsCR = false; + tokenBegin = inBuf = maxNextCharInd = 0; + bufpos = -1; + } + + public void ReInit(java.io.Reader dstream, int startline, + int startcolumn) + { + ReInit(dstream, startline, startcolumn, 4096); + } + + public void ReInit(java.io.Reader dstream) + { + ReInit(dstream, 1, 1, 4096); + } + public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline, + int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException + { + this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); + } + + public SimpleCharStream(java.io.InputStream dstream, int startline, + int startcolumn, int buffersize) + { + this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); + } + + public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline, + int startcolumn) throws java.io.UnsupportedEncodingException + { + this(dstream, encoding, startline, startcolumn, 4096); + } + + public SimpleCharStream(java.io.InputStream dstream, int startline, + int startcolumn) + { + this(dstream, startline, startcolumn, 4096); + } + + public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException + { + this(dstream, encoding, 1, 1, 4096); + } + + public SimpleCharStream(java.io.InputStream dstream) + { + this(dstream, 1, 1, 4096); + } + + public void ReInit(java.io.InputStream dstream, String encoding, int startline, + int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException + { + ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); + } + + public void ReInit(java.io.InputStream dstream, int startline, + int startcolumn, int buffersize) + { + ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); + } + + public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException + { + ReInit(dstream, encoding, 1, 1, 4096); + } + + public void ReInit(java.io.InputStream dstream) + { + ReInit(dstream, 1, 1, 4096); + } + public void ReInit(java.io.InputStream dstream, String encoding, int startline, + int startcolumn) throws java.io.UnsupportedEncodingException + { + ReInit(dstream, encoding, startline, startcolumn, 4096); + } + public void ReInit(java.io.InputStream dstream, int startline, + int startcolumn) + { + ReInit(dstream, startline, startcolumn, 4096); + } + public String GetImage() + { + if (bufpos >= tokenBegin) + return new String(buffer, tokenBegin, bufpos - tokenBegin + 1); + else + return new String(buffer, tokenBegin, bufsize - tokenBegin) + + new String(buffer, 0, bufpos + 1); + } + + public char[] GetSuffix(int len) + { + char[] ret = new char[len]; + + if ((bufpos + 1) >= len) + System.arraycopy(buffer, bufpos - len + 1, ret, 0, len); + else + { + System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0, + len - bufpos - 1); + System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1); + } + + return ret; + } + + public void Done() + { + buffer = null; + bufline = null; + bufcolumn = null; + } + + /** + * Method to adjust line and column numbers for the start of a token. + */ + public void adjustBeginLineColumn(int newLine, int newCol) + { + int start = tokenBegin; + int len; + + if (bufpos >= tokenBegin) + { + len = bufpos - tokenBegin + inBuf + 1; + } + else + { + len = bufsize - tokenBegin + bufpos + 1 + inBuf; + } + + int i = 0, j = 0, k = 0; + int nextColDiff = 0, columnDiff = 0; + + while (i < len && + bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) + { + bufline[j] = newLine; + nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j]; + bufcolumn[j] = newCol + columnDiff; + columnDiff = nextColDiff; + i++; + } + + if (i < len) + { + bufline[j] = newLine++; + bufcolumn[j] = newCol + columnDiff; + + while (i++ < len) + { + if (bufline[j = start % bufsize] != bufline[++start % bufsize]) + bufline[j] = newLine++; + else + bufline[j] = newLine; + } + } + + line = bufline[j]; + column = bufcolumn[j]; + } + +} Added: trunk/src/dl-learner/org/dllearner/parser/Token.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/Token.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/Token.java 2007-10-03 07:46:54 UTC (rev 164) @@ -0,0 +1,81 @@ +/* Generated By:JavaCC: Do not edit this line. Token.java Version 3.0 */ +package org.dllearner.parser; + +/** + * Describes the input token stream. + */ + +public @SuppressWarnings("all") class Token { + + /** + * An integer that describes the kind of this token. This numbering + * system is determined by JavaCCParser, and a table of these numbers is + * stored in the file ...Constants.java. + */ + public int kind; + + /** + * beginLine and beginColumn describe the position of the first character + * of this token; endLine and endColumn describe the position of the + * last character of this token. + */ + public int beginLine, beginColumn, endLine, endColumn; + + /** + * The string image of the token. + */ + public String image; + + /** + * A reference to the next regular (non-special) token from the input + * stream. If this is the last token from the input stream, or if the + * token manager has not read tokens beyond this one, this field is + * set to null. This is true only if this token is also a regular + * token. Otherwise, see below for a description of the contents of + * this field. + */ + public Token next; + + /** + * This field is used to access special tokens that occur prior to this + * token, but after the immediately preceding regular (non-special) token. + * If there are no such special tokens, this field is set to null. + * When there are more than one such special token, this field refers + * to the last of these special tokens, which in turn refers to the next + * previous special token through its specialToken field, and so on + * until the first special token (whose specialToken field is null). + * The next fields of special tokens refer to other special tokens that + * immediately follow it (without an intervening regular token). If there + * is no such token, this field is null. + */ + public Token specialToken; + + /** + * Returns the image. + */ + public String toString() + { + return image; + } + + /** + * Returns a new Token object, by default. However, if you want, you + * can create and return subclass objects based on the value of ofKind. + * Simply add the cases to the switch for all those special cases. + * For example, if you have a subclass of Token called IDToken that + * you want to create if ofKind is ID, simlpy add something like : + * + * case MyParserConstants.ID : return new IDToken(); + * + * to the following switch statement. Then you can cast matchedToken + * variable to the appropriate type and use it in your lexical actions. + */ + public static final Token newToken(int ofKind) + { + switch(ofKind) + { + default : return new Token(); + } + } + +} Added: trunk/src/dl-learner/org/dllearner/parser/TokenMgrError.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/TokenMgrError.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/TokenMgrError.java 2007-10-03 07:46:54 UTC (rev 164) @@ -0,0 +1,133 @@ +/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 3.0 */ +package org.dllearner.parser; + +public @SuppressWarnings("all") class TokenMgrError extends Error +{ + /* + * Ordinals for various reasons why an Error of this type can be thrown. + */ + + /** + * Lexical error occurred. + */ + static final int LEXICAL_ERROR = 0; + + /** + * An attempt was made to create a second instance of a static token manager. + */ + static final int STATIC_LEXER_ERROR = 1; + + /** + * Tried to change to an invalid lexical state. + */ + static final int INVALID_LEXICAL_STATE = 2; + + /** + * Detected (and bailed out of) an infinite loop in the token manager. + */ + static final int LOOP_DETECTED = 3; + + /** + * Indicates the reason why the exception is thrown. It will have + * one of the above 4 values. + */ + int errorCode; + + /** + * Replaces unprintable characters by their escaped (or unicode escaped) + * equivalents in the given string + */ + protected static final String addEscapes(String str) { + StringBuffer retval = new StringBuffer(); + char ch; + for (int i = 0; i < str.length(); i++) { + switch (str.charAt(i)) + { + case 0 : + continue; + case '\b': + retval.append("\\b"); + continue; + case '\t': + retval.append("\\t"); + continue; + case '\n': + retval.append("\\n"); + continue; + case '\f': + retval.append("\\f"); + continue; + case '\r': + retval.append("\\r"); + continue; + case '\"': + retval.append("\\\""); + continue; + case '\'': + retval.append("\\\'"); + continue; + case '\\': + retval.append("\\\\"); + continue; + default: + if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { + String s = "0000" + Integer.toString(ch, 16); + retval.append("\\u" + s.substring(s.length() - 4, s.length())); + } else { + retval.append(ch); + } + continue; + } + } + return retval.toString(); + } + + /** + * Returns a detailed message for the Error when it is thrown by the + * token manager to indicate a lexical error. + * Parameters : + * EOFSeen : indicates if EOF caused the lexical error + * curLexState : lexical state in which this error occurred + * errorLine : line number when the error occurred + * errorColumn : column number when the error occurred + * errorAfter : prefix that was seen before this error occurred + * curchar : the offending character + * Note: You can customize the lexical error message by modifying this method. + */ + protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) { + return("Lexical error at line " + + errorLine + ", column " + + errorColumn + ". Encountered: " + + (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") + + "after : \"" + addEscapes(errorAfter) + "\""); + } + + /** + * You can also modify the body of this method to customize your error messages. + * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not + * of end-users concern, so you can return something like : + * + * "Internal Error : Please file a bug report .... " + * + * from this method for such cases in the release version of your parser. + */ + public String getMessage() { + return super.getMessage(); + } + + /* + * Constructors of various flavors follow. + */ + + public TokenMgrError() { + } + + public TokenMgrError(String message, int reason) { + super(message); + errorCode = reason; + } + + public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) { + this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason); + } +} Copied: trunk/src/dl-learner/org/dllearner/parser/conf.jj (from rev 163, trunk/src/dl-learner/org/dllearner/parser/confttest.jj) =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/conf.jj (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/conf.jj 2007-10-03 07:46:54 UTC (rev 164) @@ -0,0 +1,386 @@ +/** + * 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/>. + * + */ + +/** + * Conf file parser. + */ + +options { + JDK_VERSION = "1.5"; + STATIC = false; +} + +PARSER_BEGIN(ConfParser) +package org.dllearner.parser; + +import java.util.List; +import java.util.LinkedList; +import java.util.Map; +import java.util.TreeMap; +import java.util.Set; +import java.util.HashSet; +import java.util.SortedSet; +import java.util.TreeSet; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.StringReader; + +import org.dllearner.Main; +import org.dllearner.Info; + +import org.dllearner.core.dl.*; +import org.dllearner.ConfigurationOption; +import org.dllearner.utilities.*; + +public class ConfParser { + + private SortedSet<Individual> positiveExamples = new TreeSet<Individual>(); + private SortedSet<Individual> negativeExamples = new TreeSet<Individual>(); + + // Konfigurationsoptionen + private List<ConfigurationOption> confOptions = new LinkedList<ConfigurationOption>(); + + // Funktionsaufrufe (die gleiche Funktion darf mehrmals mit unterschiedlichen + // Argumenten aufgerufen werden) + // private static Map<String,Set<String>> functionCallsAlt = new TreeMap<String,Set<String>>(); + // jeder Funktionsaufruf hat eine Liste von n Argumenten; alle Funktionsaufrufe + // werden in einer Liste gespeichert + private List<List<String>> functionCalls = new LinkedList<List<String>>(); + // => irgendwie Funktionsname + Argumente speichern + // => d.h. man bräuchte für jede Funktion so eine Liste oder das erste Element + // der Liste ist der Funktionsname <= ist noch die praktikabelste Variante + + // speichert, ob der Parser-Konstruktor aufgerufen wurde: momemtan handelt es + // sich um einen statischen Parser, d.h. der Konstruktor darf nur einmal + // aufgerufen werden; weitere Parsevorgänge erfolgen dann mit ReInit + // TODO: bei einem Webservice braucht man wahrscheinlich einen dynamischen Parser + // private static boolean constructorCalled = false; + + // Wissensbasis + // private KB kb = new KB(); + // public static final String internalNamespace = "http://localhost/foo#"; + + public SortedSet<Individual> getPositiveExamples() { + return positiveExamples; + } + + public SortedSet<Individual> getNegativeExamples() { + return negativeExamples; + } + + public List<ConfigurationOption> getConfOptions() { + return confOptions; + } + + public List<List<String>> getFunctionCalls() { + return functionCalls; + } + + /* + private static void addFunctionCall(String functionName, String argument) { + if(functionCalls.containsKey(functionName)) { + functionCalls.get(functionName).add(argument); + } else { + Set<String> newFunction = new TreeSet<String>(); + newFunction.add(argument); + functionCalls.put(functionName,newFunction); + } + } + */ + + + /* + public static SimpleNode parseString(String str) throws ParseException { + StringReader sr = new StringReader(str); + DLLearner learner = new DLLearner(sr); + SimpleNode n = learner.Start(); + return n; + } + */ + + public static ConfParser parseFile(String filename) { + ConfParser learner = null; + try { + learner = new ConfParser(new FileInputStream(filename)); + learner.Start(); + } catch(FileNotFoundException e) { + e.printStackTrace(); + } catch(ParseException e) { + e.printStackTrace(); + } + return learner; + } + + public static void main(String args[]) { + + if(args.length==0) { + System.out.println("Please specify an input file."); + System.exit(0); + } + + System.out.println("Starting DL-Learner (Build " + Info.build + ")"); + // System.out.println(args); + + // System.out.println(args[0]); + // System.out.println(args[1]); + // System.out.println(args.length); + + File f = new File(args[args.length-1]); + String baseDir = ""; + + System.out.print("Parsing " + f.getName() + " ... "); + long parseStartTime = System.currentTimeMillis(); + + // SimpleNode n = null; + ConfParser learner = null; + try { + learner = new ConfParser(new FileInputStream(args[args.length-1])); + baseDir = f.getParentFile().getPath(); + } catch(IOException e) { + System.err.println(e); + System.exit(0); + } + try { + learner.Start(); + // n.dump(""); + // System.out.println("Thank you."); + } catch (Exception e) { + System.out.println("\nParse exception occurred. Please follow the advise given below."); + System.out.println(e.getMessage()); + e.printStackTrace(); + System.exit(0); + } + + long parseDuration = System.currentTimeMillis() - parseStartTime; + System.out.println("OK (" + parseDuration + " ms)"); + + boolean queryMode = false; + // solution test mode wird nicht unbedingt gebraucht, da man die covers + // gleich standardmäßig beim query mit anzeigen kann + // boolean solutionTestMode = false; + + if(args.length>1 && args[0].equals("-q")) + queryMode = true; + + //if(args.length>1 && args[0].equals("-qt")) { + // queryMode = true; + // solutionTestMode = true; + //} + + // new Main(n, baseDir, queryMode); + // Parser erstmal Standalone testen + // n.dump(""); + + // neuer Aufruf des Hauptprogramms + // TODO: remove (in the future, the parser will be called from whatever method + // needs it, instead of starting the learning process itself) + // new Main(kb,positiveExamples,negativeExamples,confOptions,functionCalls,baseDir,queryMode); + } +} +PARSER_END(ConfParser) + +SKIP : +{ + " " +| "\t" +| "\n" +| "\r" +| <SINGLE_LINE_COMMENT: "//" (~["\n","\r"])* ("\n"|"\r"|"\r\n")> +| <FORMAL_COMMENT: "/**" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/"> +| <MULTI_LINE_COMMENT: "/*" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/"> +} + +TOKEN : +{ + < COMMAND_END: "." > + | < CONF_END: ";" > + | < POS_EX: "+" > + | < NEG_EX: "-" > + | < ID: ["a"-"z"] (["_","a"-"z","A"-"Z","0"-"9"])* > + | < NUMBER: (["1"-"9"] (["0"-"9"])* | "0") > + | < DOUBLE: (["1"-"9"] (["0"-"9"])* | "0") "." (["0"-"9"])* > + | <TOP: "TOP" > + | <BOTTOM: "BOTTOM" > + | <AND: "AND" > + | <OR: "OR" > + | <EXISTS: "EXISTS" | "SOME" > + | <ALL: "ALL" | "FORALL" > + | <NOT: "NEG" | "NOT" > + | <GE: ">=" > + | <LE: "<=" > + | <STRING: "\"" (~["\"","\\","\n","\r"])* "\""> +} + +void Start() : +{ + ConceptAssertion conceptAssertion; + RoleAssertion roleAssertion; + RBoxAxiom rBoxAxiom; + Equality equality; + Inclusion inclusion; + ConfigurationOption confOption; +} +{ + ( // bei Konfigurationsoption geht der Parser bis zum Semikolon durch, da das das einzige + // sichere Unterscheidungsmerkmal ist + LOOKAHEAD(Id() [ "." Id() ] "=" ( Id() | Integer() | Double() | String() + | "{" "}" | "{" ( ( String() | Id() ) "," )* (String() | Id()) "}" ) <CONF_END>) confOption=ConfOption() + { confOptions.add(confOption); } + | LOOKAHEAD(Id() "(" String() ("," String())* ")" <CONF_END>) FunctionCall() + // positive bzw. negative Beispiele sind an "+" bzw. "-" erkennbar + | LOOKAHEAD(<POS_EX>) PosExample() + | LOOKAHEAD(<NEG_EX>) NegExample() + )* + <EOF> +} + +ConfigurationOption ConfOption() : +{ + boolean containsSubOption=false, isNumeric=false, isDouble=false, isSet=false; + String option="", subOption="", value="", tmp=""; + int number = 0; + double numberDouble = 0; + ConfigurationOption confOption; + Set<String> values = new HashSet<String>(); +} +{ + option=Id() [ "." subOption=Id() {containsSubOption=true;} ] + "=" ( value=Id() + | value=String() + | number=Integer() {isNumeric=true;} + | numberDouble=Double() {isNumeric=true; isDouble=true;} + | LOOKAHEAD("{" "}") "{" "}" {isSet=true;} // leere Menge + | "{" ( LOOKAHEAD(2) ( tmp=String() | tmp=Id() ) {values.add(tmp);} "," )* + (tmp=String() | tmp=Id()) {values.add(tmp);} "}" {isSet=true;} + // eine Liste von ein oder mehr Elementen in Mengenschreibweise + ) <CONF_END> + { + if(containsSubOption) { + if(isNumeric) + if(isDouble) + confOption = new ConfigurationOption(option,subOption,numberDouble); + else + confOption = new ConfigurationOption(option,subOption,number); + else + if(isSet) + confOption = new ConfigurationOption(option,subOption,values); + else + confOption = new ConfigurationOption(option,subOption,value); + } else { + if(isNumeric) + if(isDouble) + confOption = new ConfigurationOption(option,numberDouble); + else + confOption = new ConfigurationOption(option,number); + else + if(isSet) + confOption = new ConfigurationOption(option,values); + else + confOption = new ConfigurationOption(option,value); + } + return confOption; + // confOptions.add(confOption); + } +} + +void FunctionCall() : +{ + String s, s1, s2; + List<String> list = new LinkedList<String>(); +} +{ + s1=Id() "(" s2=String() { list.add(s1); list.add(s2); } + ("," s=String() { list.add(s); } )* ")" <CONF_END> + { functionCalls.add(list); } +} + +void PosExample() : { Individual i; } +{ + <POS_EX> i=Individual() + { positiveExamples.add(i); } +} + +void NegExample() : { Individual i; } +{ + <NEG_EX> i=Individual() + { negativeExamples.add(i); } +} + +Individual Individual() : +{ + String name; +} +{ + (name=Id() | name=String()) + { + return new Individual(KBParser.getInternalURI(name)); + } +} + +String Id() : +{ + Token t; +} +{ + t=<ID> + { + return t.image; + } +} + +double Double() : +{ + Token t; +} +{ + t=<DOUBLE> + { + return new Double(t.image); + } +} + +int Integer() : +{ + Token t; +} +{ + t=<NUMBER> + { + return new Integer(t.image); + } +} + +String String() : +{ + Token t; + String s; +} +{ + t=<STRING> + { + // enclosing "" are removed + s = t.image; + s = s.substring(1, s.length() - 1); + return s; + } +} Deleted: trunk/src/dl-learner/org/dllearner/parser/confttest.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/confttest.jj 2007-10-03 07:41:53 UTC (rev 163) +++ trunk/src/dl-learner/org/dllearner/parser/confttest.jj 2007-10-03 07:46:54 UTC (rev 164) @@ -1,386 +0,0 @@ -/** - * 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/>. - * - */ - -/** - * Conf file parser. - */ - -options { - JDK_VERSION = "1.5"; - STATIC = false; -} - -PARSER_BEGIN(ConfParser) -package org.dllearner.parser; - -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -import java.util.TreeMap; -import java.util.Set; -import java.util.HashSet; -import java.util.SortedSet; -import java.util.TreeSet; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.StringReader; - -import org.dllearner.Main; -import org.dllearner.Info; - -import org.dllearner.core.dl.*; -import org.dllearner.ConfigurationOption; -import org.dllearner.utilities.*; - -public class ConfParser { - - private SortedSet<Individual> positiveExamples = new TreeSet<Individual>(); - private SortedSet<Individual> negativeExamples = new TreeSet<Individual>(); - - // Konfigurationsoptionen - private List<ConfigurationOption> confOptions = new LinkedList<ConfigurationOption>(); - - // Funktionsaufrufe (die gleiche Funktion darf mehrmals mit unterschiedlichen - // Argumenten aufgerufen werden) - // private static Map<String,Set<String>> functionCallsAlt = new TreeMap<String,Set<String>>(); - // jeder Funktionsaufruf hat eine Liste von n Argumenten; alle Funktionsaufrufe - // werden in einer Liste gespeichert - private List<List<String>> functionCalls = new LinkedList<List<String>>(); - // => irgendwie Funktionsname + Argumente speichern - // => d.h. man bräuchte für jede Funktion so eine Liste oder das erste Element - // der Liste ist der Funktionsname <= ist noch die praktikabelste Variante - - // speichert, ob der Parser-Konstruktor aufgerufen wurde: momemtan handelt es - // sich um einen statischen Parser, d.h. der Konstruktor darf nur einmal - // aufgerufen werden; weitere Parsevorgänge erfolgen dann mit ReInit - // TODO: bei einem Webservice braucht man wahrscheinlich einen dynamischen Parser - // private static boolean constructorCalled = false; - - // Wissensbasis - // private KB kb = new KB(); - // public static final String internalNamespace = "http://localhost/foo#"; - - public SortedSet<Individual> getPositiveExamples() { - return positiveExamples; - } - - public SortedSet<Individual> getNegativeExamples() { - return negativeExamples; - } - - public List<ConfigurationOption> getConfOptions() { - return confOptions; - } - - public List<List<String>> getFunctionCalls() { - return functionCalls; - } - - /* - private static void addFunctionCall(String functionName, String argument) { - if(functionCalls.containsKey(functionName)) { - functionCalls.get(functionName).add(argument); - } else { - Set<String> newFunction = new TreeSet<String>(); - newFunction.add(argument); - functionCalls.put(functionName,newFunction); - } - } - */ - - - /* - public static SimpleNode parseString(String str) throws ParseException { - StringReader sr = new StringReader(str); - DLLearner learner = new DLLearner(sr); - SimpleNode n = learner.Start(); - return n; - } - */ - - public static ConfParser parseFile(String filename) { - ConfParser learner = null; - try { - learner = new ConfParser(new FileInputStream(filename)); - learner.Start(); - } catch(FileNotFoundException e) { - e.printStackTrace(); - } catch(ParseException e) { - e.printStackTrace(); - } - return learner; - } - - public static void main(String args[]) { - - if(args.length==0) { - System.out.println("Please specify an input file."); - System.exit(0); - } - - System.out.println("Starting DL-Learner (Build " + Info.build + ")"); - // System.out.println(args); - - // System.out.println(args[0]); - // System.out.println(args[1]); - // System.out.println(args.length); - - File f = new File(args[args.length-1]); - String baseDir = ""; - - System.out.print("Parsing " + f.getName() + " ... "); - long parseStartTime = System.currentTimeMillis(); - - // SimpleNode n = null; - ConfParser learner = null; - try { - learner = new ConfParser(new FileInputStream(args[args.length-1])); - baseDir = f.getParentFile().getPath(); - } catch(IOException e) { - System.err.println(e); - System.exit(0); - } - try { - learner.Start(); - // n.dump(""); - // System.out.println("Thank you."); - } catch (Exception e) { - System.out.println("\nParse exception occurred. Please follow the advise given below."); - System.out.println(e.getMessage()); - e.printStackTrace(); - System.exit(0); - } - - long parseDuration = System.currentTimeMillis() - parseStartTime; - System.out.println("OK (" + parseDuration + " ms)"); - - boolean queryMode = false; - // solution test mode wird nicht unbedingt gebraucht, da man die covers - // gleich standardmäßig beim query mit anzeigen kann - // boolean solutionTestMode = false; - - if(args.length>1 && args[0].equals("-q")) - queryMode = true; - - //if(args.length>1 && args[0].equals("-qt")) { - // queryMode = true; - // solutionTestMode = true; - //} - - // new Main(n, baseDir, queryMode); - // Parser erstmal Standalone testen - // n.dump(""); - - // neuer Aufruf des Hauptprogramms - // TODO: remove (in the future, the parser will be called from whatever method - // needs it, instead of starting the learning process itself) - // new Main(kb,positiveExamples,negativeExamples,confOptions,functionCalls,baseDir,queryMode); - } -} -PARSER_END(ConfParser) - -SKIP : -{ - " " -| "\t" -| "\n" -| "\r" -| <SINGLE_LINE_COMMENT: "//" (~["\n","\r"])* ("\n"|"\r"|"\r\n")> -| <FORMAL_COMMENT: "/**" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/"> -| <MULTI_LINE_COMMENT: "/*" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/"> -} - -TOKEN : -{ - < COMMAND_END: "." > - | < CONF_END: ";" > - | < POS_EX: "+" > - | < NEG_EX: "-" > - | < ID: ["a"-"z"] (["_","a"-"z","A"-"Z","0"-"9"])* > - | < NUMBER: (["1"-"9"] (["0"-"9"])* | "0") > - | < DOUBLE: (["1"-"9"] (["0"-"9"])* | "0") "." (["0"-"9"])* > - | <TOP: "TOP" > - | <BOTTOM: "BOTTOM" > - | <AND: "AND" > - | <OR: "OR" > - | <EXISTS: "EXISTS" | "SOME" > - | <ALL: "ALL" | "FORALL" > - | <NOT: "NEG" | "NOT" > - | <GE: ">=" > - | <LE: "<=" > - | <STRING: "\"" (~["\"","\\","\n","\r"])* "\""> -} - -void Start() : -{ - ConceptAssertion conceptAssertion; - RoleAssertion roleAssertion; - RBoxAxiom rBoxAxiom; - Equality equality; - Inclusion inclusion; - ConfigurationOption confOption; -} -{ - ( // bei Konfigurationsoption geht der Parser bis zum Semikolon durch, da das das einzige - // sichere Unterscheidungsmerkmal ist - LOOKAHEAD(Id() [ "." Id() ] "=" ( Id() | Integer() | Double() | String() - | "{" "}" | "{" ( ( String() | Id() ) "," )* (String() | Id()) "}" ) <CONF_END>) confOption=ConfOption() - { confOptions.add(confOption); } - | LOOKAHEAD(Id() "(" String() ("," String())* ")" <CONF_END>) FunctionCall() - // positive bzw. negative Beispiele sind an "+" bzw. "-" erkennbar - | LOOKAHEAD(<POS_EX>) PosExample() - | LOOKAHEAD(<NEG_EX>) NegExample() - )* - <EOF> -} - -ConfigurationOption ConfOption() : -{ - boolean containsSubOption=false, isNumeric=false, isDouble=false, isSet=false; - String option="", subOption="", value="", tmp=""; - int number = 0; - double numberDouble = 0; - ConfigurationOption confOption; - Set<String> values = new HashSet<String>(); -} -{ - option=Id() [ "." subOption=Id() {containsSubOption=true;} ] - "=" ( value=Id() - | value=String() - | number=Integer() {isNumeric=true;} - | numberDouble=Double() {isNumeric=true; isDouble=true;} - | LOOKAHEAD("{" "}") "{" "}" {isSet=true;} // leere Menge - | "{" ( LOOKAHEAD(2) ( tmp=String() | tmp=Id() ) {values.add(tmp);} "," )* - (tmp=String() | tmp=Id()) {values.add(tmp);} "}" {isSet=true;} - // eine Liste von ein oder mehr Elementen in Mengenschreibweise - ) <CONF_END> - { - if(containsSubOption) { - if(isNumeric) - if(isDouble) - confOption = new ConfigurationOption(option,subOption,numberDouble); - else - confOption = new ConfigurationOption(option,subOption,number); - else - if(isSet) - confOption = new ConfigurationOption(option,subOption,values); - else - confOption = new ConfigurationOption(option,subOption,value); - } else { - if(isNumeric) - if(isDouble) - confOption = new ConfigurationOption(option,numberDouble); - else - confOption = new ConfigurationOption(option,number); - else - if(isSet) - confOption = new ConfigurationOption(option,values); - else - confOption = new ConfigurationOption(option,value); - } - return confOption; - // confOptions.add(confOption); - } -} - -void FunctionCall() : -{ - String s, s1, s2; - List<String> list = new LinkedList<String>(); -} -{ - s1=Id() "(" s2=String() { list.add(s1); list.add(s2); } - ("," s=String() { list.add(s); } )* ")" <CONF_END> - { functionCalls.add(list); } -} - -void PosExample() : { Individual i; } -{ - <POS_EX> i=Individual() - { positiveExamples.add(i); } -} - -void NegExample() : { Individual i; } -{ - <NEG_EX> i=Individual() - { negativeExamples.add(i); } -} - -Individual Individual() : -{ - String name; -} -{ - (name=Id() | name=String()) - { - return new Individual(KBParser.getInternalURI(name)); - } -} - -String Id() : -{ - Token t; -} -{ - t=<ID> - { - return t.image; - } -} - -double Double() : -{ - Token t; -} -{ - t=<DOUBLE> - { - return new Double(t.image); - } -} - -int Integer() : -{ - Token t; -} -{ - t=<NUMBER> - { - return new Integer(t.image); - } -} - -String String() : -{ - Token t; - String s; -} -{ - t=<STRING> - { - // enclosing "" are removed - s = t.image; - s = s.substring(1, s.length() - 1); - return s; - } -} Copied: trunk/src/dl-learner/org/dllearner/parser/kb.jj (from rev 163, trunk/src/dl-learner/org/dllearner/parser/kbtest.jj) =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/kb.jj (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/kb.jj 2007-10-03 07:46:54 UTC (rev 164) @@ -0,0 +1,326 @@ +/** + * 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/>. + * + */ + +/** + * KB file parser. + */ + +options { + JDK_VERSION = "1.5"; + STATIC = false; +} + +PARSER_BEGIN(KBParser) +package org.dllearner.parser; + +import org.dllearner.core.dl.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.StringReader; + +public class KBParser { + + public static final String internalNamespace = "http://localhost/foo#"; + + // method to give all internal stuff an URI (not necessary for DLs, but for OWL ontologies + // and it should be possible to represent the internal KB as OWL ontology) + public static String getInternalURI(String name) { + if(name.startsWith("http://")) + return name; + else + return internalNamespace + name; + } + + public static Concept parseConcept(String string) throws ParseException { + KBParser parser = new KBParser(new StringReader(string)); + return parser.Concept(); + } + + public static KB parseKBFile(File file) throws FileNotFoundException, ParseException { + KBParser parser = new KBParser(new FileInputStream(file)); + return parser.KB(); + } + +} +PARSER_END(KBParser) + +SKIP : +{ + " " +| "\t" +| "\n" +| "\r" +| <SINGLE_LINE_COMMENT: "//" (~["\n","\r"])* ("\n"|"\r"|"\r\n")> +| <FORMAL_COMMENT: "/**" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/"> +| <MULTI_LINE_COMMENT: "/*" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/"> +} + +TOKEN : +{ + < COMMAND_END: "." > + | < ID: ["a"-"z"] (["_","a"-"z","A"-"Z","0"-"9"])* > + | < NUMBER: (["1"-"9"] (["0"-"9"])* | "0") > + | < DOUBLE: (["1"-"9"] (["0"-"9"])* | "0") "." (["0"-"9"])* > + | < TOP: "TOP" > + | < BOTTOM: "BOTTOM" > + | < AND: "AND" > + | < OR: "OR" > + | < EXISTS: "EXISTS" | "SOME" > + | < ALL: "ALL" | "FORALL" > + | < NOT: "NEG" | "NOT" > + | < GE: ">=" > + | < LE: "<=" > + | < STRING: "\"" (~["\"","\\","\n","\r"])* "\""> +} + +KB KB() : +{ + ConceptAssertion conceptAssertion; + RoleAssertion roleAssertion; + RBoxAxiom rBoxAxiom; + Equality equality; + Inclusion inclusion; + KB kb = new KB(); +} +{ + ( LOOKAHEAD(Concept() "(" Individual() ")" <COMMAND_END>) conceptAssertion=ABoxConcept() + { kb.addABoxAxiom(conceptAssertion); } + | LOOKAHEAD([Not()] AtomicRole() "(" Individual() ",") roleAssertion = ABoxRole() + { kb.addABoxAxiom(roleAssertion); } + | rBoxAxiom = Transitive() + { kb.addRBoxAxiom(rBoxAxiom); } + | rBoxAxiom = Functional() + { kb.addRBoxAxiom(rBoxAxiom); } + | rBoxAxiom = Symmetric() + { kb.addRBoxAxiom(rBoxAxiom); } + | rBoxAxiom = Inverse() + { kb.addRBoxAxiom(rBoxAxiom); } + | rBoxAxiom = Subrole() + { kb.addRBoxAxiom(rBoxAxiom); } + // da Konfigurationsoptionen ausgeschlossen sind, reicht es bis zum "=" zu suchen + | LOOKAHEAD(Concept() "=") equality = TBoxEquiv() + { kb.addTBoxAxiom(equality); } + | LOOKAHEAD(Concept() ("SUBCLASSOF" | "SUB" )) inclusion = TBoxSub() + { kb.addTBoxAxiom(inclusion); } + )* + <EOF> + { return kb; } +} + +ConceptAssertion ABoxConcept() : {Concept c; Individual i;} +{ + c=Concept() "(" i=Individual() ")" <COMMAND_END> + { return new ConceptAssertion(c,i); } +} + +RoleAssertion ABoxRole() : +{ + boolean isNegated=false; + AtomicRole ar; + Individual i1,i2; +} +{ + [Not() {isNegated=true;}] ar=AtomicRole() "(" i1=Individual() "," i2=Individual() ")" <COMMAND_END> + { + if(isNegated) + throw new Error("negated role assertions not supported yet"); + else + return new RoleAssertion(ar,i1,i2); + } +} + +TransitiveRoleAxiom Transitive() : {AtomicRole ar;} +{ + "Transitive" "(" ar=AtomicRole() ")" <COMMAND_END> + { return new TransitiveRoleAxiom(ar); } +} + +FunctionalRoleAxiom Functional() : {AtomicRole ar;} +{ + "Functional" "(" ar=AtomicRole() ")" <COMMAND_END> + { return new FunctionalRoleAxiom(ar); } + +} + +SymmetricRoleAxiom Symmetric() : {AtomicRole ar;} +{ + "Symmetric" "(" ar=AtomicRole() ")" <COMMAND_END> + { return new SymmetricRoleAxiom(ar); } +} + +InverseRoleAxiom Inverse() : {AtomicRole ar1,ar2;} +{ + "Inverse" "(" ar1=AtomicRole() "," ar2=AtomicRole() ")" <COMMAND_END> + { return new InverseRoleAxiom(ar1,ar2); } +} + +SubRoleAxiom Subrole() : {AtomicRole ar1,ar2;} +{ + "Subrole" "(" ar1=AtomicRole() "," ar2=AtomicRole() ")" <COMMAND_END> + { return new SubRoleAxiom(ar1,ar2);} +} + +Equality TBoxEquiv() : {Concept c1,c2;} +{ + c1=Concept() "=" c2=Concept() <COMMAND_END> + { return new Equality(c1,c2); } +} + +Inclusion TBoxSub() : {Concept c1,c2;} +{ + c1=Concept() ("SUBCLASSOF" | "SUB" | "SUBCONCEPTOF") c2=Concept() <COMMAND_END> + { return new Inclusion(c1,c2);} +} + +Concept Concept() : +{ + Concept c,c1,c2; + AtomicConcept ac; + AtomicRole ar; + String s; + int i; +} +{ + Top() {return new Top();} + | Bottom() {return new Bottom();} + | ac = AtomicConcept() {return ac;} + // | s=Id() {return new AtomicConcept(s);} + // | s=String() {return new AtomicConcept(s);} + // Parser geht bis zum n�chsten AND oder OR + | LOOKAHEAD( "(" Concept() And()) "(" c1=Concept() And() c2=Concept() ")" + {return new Conjunction(c1,c2);} + | LOOKAHEAD( "(" Concept() Or()) "(" c1=Concept() Or() c2=Concept() ")" + {return new Disjunction(c1,c2);} + // EXISTS oder ALL reicht aus um richtigen Zweig zu w�hlen + // | Exists() s=Id() "." c=Concept() + // {return new Exists(new AtomicRole(s),c); } + | Exists() ar=AtomicRole() "." c=Concept() + {return new Exists(ar,c); } + // | All() s=Id() "." c=Concept() + // {return new All(new AtomicRole(s),c); } + | All() ar=AtomicRole() "." c=Concept() + {return new All(ar,c); } + | Not() c=Concept() + {return new Negation(c); } + // | GE() i=Integer() s=Id() "." c=Concept() + // {return new GreaterEqual(i,new AtomicRole(s),c);} + | GE() i=Integer() ar=AtomicRole() "." c=Concept() + {return new GreaterEqual(i,ar,c);} + // | LE() i=Integer() s=Id() "." c=Concept() + // {return new LessEqual(i,new AtomicRole(s),c);} + | LE() i=Integer() ar=AtomicRole() "." c=Concept() + {return new LessEqual(i,ar,c);} +} + +void Or() : {} { <OR> } +void And() : {} { <AND> } +void Top() : {} { <TOP> } +void Bottom() : {} { <BOTTOM> } +void Exists() : {} { <EXISTS> } +void All() : {} { <ALL> } +void Not() : {} { <NOT> } +void GE() : {} { <GE> } +void LE() : {} { <LE> } + +AtomicConcept AtomicConcept() : +{ + String name; +} +{ + (name=Id() | name=String()) + { + return new AtomicConcept(getInternalURI(name)); + } +} + +AtomicRole AtomicRole() : +{ + String name; +} +{ + (name=Id() | name=String()) + { + return new AtomicRole(getInternalURI(name)); + } +} + +Individual Individual() : +{ + String name; +} +{ + (name=Id() | name=String()) + { + return new Individual(getInternalURI(name)); + } +} + +String Id() : +{ + Token t; +} +{ + t=<ID> + { + // jjtThis.setId(t.image); + return t.image; + } +} + +double Double() : +{ + Token t; +} +{ + t=<DOUBLE> + { + return new Double(t.image); + } +} + +int Integer() : +{ + Token t; +} +{ + t=<NUMBER> + { + // jjtThis.setId(t.image); + // muss noch in Integer umgewandelt werden + return new Integer(t.image); + } +} + +String String() : +{ + Token t; + String s; +} +{ + t=<STRING> + { + // jjtThis.setId(t.image); + // es werden sofort die Anfuehrungszeichen abgeschnitten + s = t.image; + s = s.substring(1, s.length() - 1); + return s; + } +} \ No newline at end of file Deleted: trunk/src/dl-learner/org/dllearner/parser/kbtest.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/kbtest.jj 2007-10-03 07:41:53 UTC (rev 163) +++ trunk/src/dl-learner/org/dllearner/parser/kbtest.jj 2007-10-03 07:46:54 UTC (rev 164) @@ -1,326 +0,0 @@ -/** - * 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/>. - * - */ - -/** - * KB file parser. - */ - -options { - JDK_VERSION = "1.5"; - STATIC = false; -} - -PARSER_BEGIN(KBParser) -package org.dllearner.parser; - -import org.dllearner.core.dl.*; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.StringReader; - -public class KBParser { - - public static final String internalNamespace = "http://localhost/foo#"; - - // method to give all internal stuff an URI (not necessary for DLs, but for OWL ontologies - // and it should be possible to represent the internal KB as OWL ontology) - public static String getInternalURI(String name) { - if(name.startsWith("http://")) - return name; - else - return internalNamespace + name; - } - - public static Concept parseConcept(String string) throws ParseException { - KBParser parser = new KBParser(new StringReader(string)); - return parser.Concept(); - } - - public static KB parseKBFile(File file) throws FileNotFoundException, ParseException { - KBParser parser = new KBParser(new FileInputStream(file)); - return parser.KB(); - } - -} -PARSER_END(KBParser) - -SKIP : -{ - " " -| "\t" -| "\n" -| "\r" -| <SINGLE_LINE_COMMENT: "//" (~["\n","\r"])* ("\n"|"\r"|"\r\n")> -| <FORMAL_COMMENT: "... [truncated message content] |
From: <jen...@us...> - 2008-02-08 08:59:37
|
Revision: 527 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=527&view=rev Author: jenslehmann Date: 2008-02-08 00:59:26 -0800 (Fri, 08 Feb 2008) Log Message: ----------- added JavaCC Prolog parser Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/package.html Added Paths: ----------- trunk/src/dl-learner/org/dllearner/parser/PrologParser.java trunk/src/dl-learner/org/dllearner/parser/PrologParserConstants.java trunk/src/dl-learner/org/dllearner/parser/PrologParserTokenManager.java trunk/src/dl-learner/org/dllearner/parser/prolog.jj Added: trunk/src/dl-learner/org/dllearner/parser/PrologParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/PrologParser.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/PrologParser.java 2008-02-08 08:59:26 UTC (rev 527) @@ -0,0 +1,773 @@ +/* Generated By:JavaCC: Do not edit this line. PrologParser.java */ +package org.dllearner.parser; + +public @SuppressWarnings("all") class PrologParser implements PrologParserConstants { + public PrologParser() { + this(new java.io.StringReader("")); + } + + public org.dllearner.prolog.Term parseTerm(String src) throws ParseException { + reinitToString(src); + return term(); + } + + public java.util.ArrayList parseTermList(String src) throws ParseException { + reinitToString(src); + return termList(); + } + + public org.dllearner.prolog.Atom parseAtom(String src) throws ParseException { + reinitToString(src); + return atom(); + } + + public org.dllearner.prolog.Clause parseClause(String src) throws ParseException { + reinitToString(src); + return clause(); + } + + public org.dllearner.prolog.Program parseProgram(String src) throws ParseException { + reinitToString(src); + return program(); + } + + private void reinitToString(String src) { + ReInit(new java.io.StringReader(src)); + } + +////////////////////////////////////////////////////////////////////////////////////////// + final public org.dllearner.prolog.Program program() throws ParseException { + org.dllearner.prolog.Program p = new org.dllearner.prolog.Program(); + org.dllearner.prolog.Clause c; + label_1: + while (true) { + c = clause(); + p.addClause(c); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + ; + break; + default: + jj_la1[0] = jj_gen; + break label_1; + } + } + jj_consume_token(0); + {if (true) return p;} + throw new Error("Missing return statement in function"); + } + + final public org.dllearner.prolog.Clause clause() throws ParseException { + org.dllearner.prolog.Atom head; + org.dllearner.prolog.Body body = null; + head = atom(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 18: + jj_consume_token(18); + body = body(); + break; + default: + jj_la1[1] = jj_gen; + ; + } + jj_consume_token(19); + {if (true) return new org.dllearner.prolog.Clause(head, body);} + throw new Error("Missing return statement in function"); + } + + final public org.dllearner.prolog.Body body() throws ParseException { + org.dllearner.prolog.Literal l; + org.dllearner.prolog.Body b = new org.dllearner.prolog.Body(); + l = literal(); + b.addLiteral(l); + label_2: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 20: + ; + break; + default: + jj_la1[2] = jj_gen; + break label_2; + } + jj_consume_token(20); + l = literal(); + b.addLiteral(l); + } + {if (true) return b;} + throw new Error("Missing return statement in function"); + } + + final public org.dllearner.prolog.Atom atom() throws ParseException { + Token atom; + java.util.ArrayList arguments = new java.util.ArrayList() ; + atom = jj_consume_token(IDENTIFIER); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 21: + jj_consume_token(21); + arguments = termList(); + jj_consume_token(22); + break; + default: + jj_la1[3] = jj_gen; + ; + } + {if (true) return new org.dllearner.prolog.Atom(atom.image, arguments);} + throw new Error("Missing return statement in function"); + } + + final public org.dllearner.prolog.Literal literal() throws ParseException { + org.dllearner.prolog.Atom a; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + a = atom(); + {if (true) return new org.dllearner.prolog.Literal(a, true);} + break; + case NOT: + jj_consume_token(NOT); + a = atom(); + {if (true) return new org.dllearner.prolog.Literal(a, false);} + break; + default: + jj_la1[4] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public org.dllearner.prolog.Term term() throws ParseException { + Token v; + String o; + Token f; + java.util.ArrayList arguments = null; + org.dllearner.prolog.Term t1, t2; + if (jj_2_1(2147483647)) { + o = prefixOp(); + t2 = simpleTerm(); + {if (true) return new org.dllearner.prolog.Function(o, t2);} + } else if (jj_2_2(2147483647)) { + t1 = simpleTerm(); + o = infixOp(); + t2 = simpleTerm(); + {if (true) return new org.dllearner.prolog.Function(t1, o, t2);} + } else if (jj_2_3(2147483647)) { + t1 = simpleTerm(); + o = postfixOp(); + {if (true) return new org.dllearner.prolog.Function(t1, o);} + } else if (jj_2_4(2147483647)) { + t1 = simpleTerm(); + {if (true) return t1;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public org.dllearner.prolog.Term simpleTerm() throws ParseException { + Token v; + String o; + Token f; + java.util.ArrayList arguments = null; + org.dllearner.prolog.Term l; + if (jj_2_5(2)) { + f = jj_consume_token(IDENTIFIER); + jj_consume_token(21); + arguments = termList(); + jj_consume_token(22); + {if (true) return new org.dllearner.prolog.Function(f.image, arguments);} + } else if (jj_2_6(2)) { + f = jj_consume_token(IDENTIFIER); + {if (true) return new org.dllearner.prolog.PrologConstant(f.image);} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case VAR: + v = jj_consume_token(VAR); + {if (true) return new org.dllearner.prolog.Variable(v.image);} + break; + case NUMBER: + v = jj_consume_token(NUMBER); + {if (true) return new org.dllearner.prolog.Number(v.image);} + break; + case STRINGCONSTANT: + v = jj_consume_token(STRINGCONSTANT); + {if (true) return new org.dllearner.prolog.StringConstant(v.image);} + break; + case 23: + case 24: + l = list(); + {if (true) return l;} + break; + default: + jj_la1[5] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final public String prefixOp() throws ParseException { + Token f; + f = jj_consume_token(OPERATOR); + {if (true) return f.image;} + throw new Error("Missing return statement in function"); + } + + final public String infixOp() throws ParseException { + Token f; + f = jj_consume_token(OPERATOR); + {if (true) return f.image;} + throw new Error("Missing return statement in function"); + } + + final public String postfixOp() throws ParseException { + Token f; + f = jj_consume_token(OPERATOR); + {if (true) return f.image;} + throw new Error("Missing return statement in function"); + } + + final public java.util.ArrayList termList() throws ParseException { + org.dllearner.prolog.Term t; + java.util.ArrayList l = new java.util.ArrayList(); + t = term(); + l.add(t); + label_3: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 20: + ; + break; + default: + jj_la1[6] = jj_gen; + break label_3; + } + jj_consume_token(20); + t = term(); + l.add(t); + } + {if (true) return l;} + throw new Error("Missing return statement in function"); + } + + final public org.dllearner.prolog.List list() throws ParseException { + java.util.ArrayList content = null; + org.dllearner.prolog.Term head; + org.dllearner.prolog.List l; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 23: + jj_consume_token(23); + {if (true) return new org.dllearner.prolog.List();} + break; + default: + jj_la1[7] = jj_gen; + if (jj_2_7(3)) { + jj_consume_token(24); + head = term(); + jj_consume_token(25); + {if (true) return new org.dllearner.prolog.List(head, null);} + } else if (jj_2_8(3)) { + jj_consume_token(24); + head = term(); + jj_consume_token(26); + l = list(); + jj_consume_token(25); + {if (true) return new org.dllearner.prolog.List(head, l);} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final 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); } + } + + final private boolean jj_3R_4() { + if (jj_scan_token(OPERATOR)) return true; + return false; + } + + final private boolean jj_3R_12() { + if (jj_3R_14()) return true; + return false; + } + + final private boolean jj_3R_11() { + if (jj_scan_token(STRINGCONSTANT)) return true; + return false; + } + + final private boolean jj_3R_10() { + if (jj_scan_token(NUMBER)) return true; + return false; + } + + final private boolean jj_3R_9() { + if (jj_scan_token(VAR)) return true; + return false; + } + + final private boolean jj_3_6() { + if (jj_scan_token(IDENTIFIER)) return true; + return false; + } + + final private boolean jj_3_8() { + if (jj_scan_token(24)) return true; + if (jj_3R_8()) return true; + if (jj_scan_token(26)) return true; + if (jj_3R_14()) return true; + if (jj_scan_token(25)) return true; + return false; + } + + final private boolean jj_3_5() { + if (jj_scan_token(IDENTIFIER)) return true; + if (jj_scan_token(21)) return true; + if (jj_3R_13()) return true; + if (jj_scan_token(22)) return true; + return false; + } + + final private boolean jj_3R_5() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_5()) { + jj_scanpos = xsp; + if (jj_3_6()) { + jj_scanpos = xsp; + if (jj_3R_9()) { + jj_scanpos = xsp; + if (jj_3R_10()) { + jj_scanpos = xsp; + if (jj_3R_11()) { + jj_scanpos = xsp; + if (jj_3R_12()) return true; + } + } + } + } + } + return false; + } + + final private boolean jj_3_7() { + if (jj_scan_token(24)) return true; + if (jj_3R_8()) return true; + if (jj_scan_token(25)) return true; + return false; + } + + final private boolean jj_3R_16() { + if (jj_scan_token(23)) return true; + return false; + } + + final private boolean jj_3R_14() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_16()) { + jj_scanpos = xsp; + if (jj_3_7()) { + jj_scanpos = xsp; + if (jj_3_8()) return true; + } + } + return false; + } + + final private boolean jj_3_4() { + if (jj_3R_5()) return true; + return false; + } + + final private boolean jj_3R_15() { + if (jj_scan_token(20)) return true; + if (jj_3R_8()) return true; + return false; + } + + final private boolean jj_3_3() { + if (jj_3R_5()) return true; + if (jj_3R_7()) return true; + return false; + } + + final private boolean jj_3_2() { + if (jj_3R_5()) return true; + if (jj_3R_6()) return true; + if (jj_3R_5()) return true; + return false; + } + + final private boolean jj_3R_13() { + if (jj_3R_8()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_15()) { jj_scanpos = xsp; break; } + } + return false; + } + + final private boolean jj_3_1() { + if (jj_3R_4()) return true; + if (jj_3R_5()) return true; + return false; + } + + final private boolean jj_3R_8() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_1()) { + jj_scanpos = xsp; + if (jj_3_2()) { + jj_scanpos = xsp; + if (jj_3_3()) { + jj_scanpos = xsp; + if (jj_3_4()) return true; + } + } + } + return false; + } + + final private boolean jj_3R_7() { + if (jj_scan_token(OPERATOR)) return true; + return false; + } + + final private boolean jj_3R_6() { + if (jj_scan_token(OPERATOR)) return true; + return false; + } + + public PrologParserTokenManager token_source; + SimpleCharStream jj_input_stream; + public Token token, jj_nt; + private int jj_ntk; + private Token jj_scanpos, jj_lastpos; + private int jj_la; + public boolean lookingAhead = false; + private boolean jj_semLA; + private int jj_gen; + final private int[] jj_la1 = new int[8]; + static private int[] jj_la1_0; + static { + jj_la1_0(); + } + private static void jj_la1_0() { + jj_la1_0 = new int[] {0x1000,0x40000,0x100000,0x200000,0x1080,0x1800d00,0x100000,0x800000,}; + } + final private JJCalls[] jj_2_rtns = new JJCalls[8]; + private boolean jj_rescan = false; + private int jj_gc = 0; + + public PrologParser(java.io.InputStream stream) { + this(stream, null); + } + public PrologParser(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 PrologParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(java.io.InputStream stream) { + ReInit(stream, null); + } + 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 < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public PrologParser(java.io.Reader stream) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new PrologParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + 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 < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public PrologParser(PrologParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(PrologParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + final 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(); + final 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; + } + + 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; + } + + final public Token getToken(int index) { + Token t = lookingAhead ? jj_scanpos : token; + for (int i = 0; i < index; i++) { + if (t.next != null) t = t.next; + else t = t.next = token_source.getNextToken(); + } + return t; + } + + final 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.Vector<int[]> jj_expentries = new java.util.Vector<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]; + } + boolean exists = false; + for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) { + int[] oldentry = (int[])(e.nextElement()); + if (oldentry.length == jj_expentry.length) { + exists = true; + for (int i = 0; i < jj_expentry.length; i++) { + if (oldentry[i] != jj_expentry[i]) { + exists = false; + break; + } + } + if (exists) break; + } + } + if (!exists) jj_expentries.addElement(jj_expentry); + if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; + } + } + + public ParseException generateParseException() { + jj_expentries.removeAllElements(); + boolean[] la1tokens = new boolean[27]; + if (jj_kind >= 0) { + la1tokens[jj_kind] = true; + jj_kind = -1; + } + for (int i = 0; i < 8; 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.addElement(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.elementAt(i); + } + return new ParseException(token, exptokseq, tokenImage); + } + + final public void enable_tracing() { + } + + final public void disable_tracing() { + } + + final private void jj_rescan_token() { + jj_rescan = true; + for (int i = 0; i < 8; 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; + } + } + p = p.next; + } while (p != null); + } catch(LookaheadSuccess ls) { } + } + jj_rescan = false; + } + + final 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/src/dl-learner/org/dllearner/parser/PrologParserConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/PrologParserConstants.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/PrologParserConstants.java 2008-02-08 08:59:26 UTC (rev 527) @@ -0,0 +1,52 @@ +/* Generated By:JavaCC: Do not edit this line. PrologParserConstants.java */ +package org.dllearner.parser; + +public @SuppressWarnings("all") interface PrologParserConstants { + + int EOF = 0; + int SINGLE_LINE_COMMENT = 6; + int NOT = 7; + int NUMBER = 8; + int DIGIT = 9; + int STRINGCONSTANT = 10; + int VAR = 11; + int IDENTIFIER = 12; + int OPERATOR = 13; + int ANYCHAR = 14; + int LOCASE = 15; + int HICASE = 16; + int SPECIALCHAR = 17; + + int DEFAULT = 0; + + String[] tokenImage = { + "<EOF>", + "\" \"", + "\"\\t\"", + "\"\\n\"", + "\"\\r\"", + "\"\\f\"", + "<SINGLE_LINE_COMMENT>", + "\"not\"", + "<NUMBER>", + "<DIGIT>", + "<STRINGCONSTANT>", + "<VAR>", + "<IDENTIFIER>", + "<OPERATOR>", + "<ANYCHAR>", + "<LOCASE>", + "<HICASE>", + "<SPECIALCHAR>", + "\":-\"", + "\".\"", + "\",\"", + "\"(\"", + "\")\"", + "\"[]\"", + "\"[\"", + "\"]\"", + "\"|\"", + }; + +} Added: trunk/src/dl-learner/org/dllearner/parser/PrologParserTokenManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/PrologParserTokenManager.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/PrologParserTokenManager.java 2008-02-08 08:59:26 UTC (rev 527) @@ -0,0 +1,578 @@ +/* Generated By:JavaCC: Do not edit this line. PrologParserTokenManager.java */ +package org.dllearner.parser; + +public @SuppressWarnings("all") class PrologParserTokenManager implements PrologParserConstants +{ + public java.io.PrintStream debugStream = System.out; + public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } +private final int jjStopStringLiteralDfa_0(int pos, long active0) +{ + switch (pos) + { + case 0: + if ((active0 & 0x80L) != 0L) + { + jjmatchedKind = 12; + return 18; + } + return -1; + case 1: + if ((active0 & 0x80L) != 0L) + { + jjmatchedKind = 12; + jjmatchedPos = 1; + return 18; + } + return -1; + default : + return -1; + } +} +private final int jjStartNfa_0(int pos, long active0) +{ + return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1); +} +private final int jjStopAtPos(int pos, int kind) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + return pos + 1; +} +private final 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); +} +private final int jjMoveStringLiteralDfa0_0() +{ + switch(curChar) + { + case 40: + return jjStopAtPos(0, 21); + case 41: + return jjStopAtPos(0, 22); + case 44: + return jjStopAtPos(0, 20); + case 46: + return jjStopAtPos(0, 19); + case 58: + return jjMoveStringLiteralDfa1_0(0x40000L); + case 91: + jjmatchedKind = 24; + return jjMoveStringLiteralDfa1_0(0x800000L); + case 93: + return jjStopAtPos(0, 25); + case 110: + return jjMoveStringLiteralDfa1_0(0x80L); + case 124: + return jjStopAtPos(0, 26); + default : + return jjMoveNfa_0(0, 0); + } +} +private final int jjMoveStringLiteralDfa1_0(long active0) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(0, active0); + return 1; + } + switch(curChar) + { + case 45: + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); + break; + case 93: + if ((active0 & 0x800000L) != 0L) + return jjStopAtPos(1, 23); + break; + case 111: + return jjMoveStringLiteralDfa2_0(active0, 0x80L); + default : + break; + } + return jjStartNfa_0(0, active0); +} +private final 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 116: + if ((active0 & 0x80L) != 0L) + return jjStartNfaWithStates_0(2, 7, 18); + break; + default : + break; + } + return jjStartNfa_0(1, active0); +} +private final void jjCheckNAdd(int state) +{ + if (jjrounds[state] != jjround) + { + jjstateSet[jjnewStateCnt++] = state; + jjrounds[state] = jjround; + } +} +private final void jjAddStates(int start, int end) +{ + do { + jjstateSet[jjnewStateCnt++] = jjnextStates[start]; + } while (start++ != end); +} +private final void jjCheckNAddTwoStates(int state1, int state2) +{ + jjCheckNAdd(state1); + jjCheckNAdd(state2); +} +private final void jjCheckNAddStates(int start, int end) +{ + do { + jjCheckNAdd(jjnextStates[start]); + } while (start++ != end); +} +private final void jjCheckNAddStates(int start) +{ + jjCheckNAdd(jjnextStates[start]); + jjCheckNAdd(jjnextStates[start + 1]); +} +static final long[] jjbitVec0 = { + 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +private final int jjMoveNfa_0(int startState, int curPos) +{ + int[] nextStates; + int startsAt = 0; + jjnewStateCnt = 18; + int i = 1; + jjstateSet[0] = startState; + int j, kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + long l = 1L << curChar; + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 18: + if ((0x53ff2c0000000000L & l) != 0L) + { + if (kind > 13) + kind = 13; + jjCheckNAdd(17); + } + if ((0x3ff000000000000L & l) != 0L) + { + if (kind > 12) + kind = 12; + jjCheckNAdd(15); + } + break; + case 0: + if ((0x3ff000000000000L & l) != 0L) + { + if (kind > 8) + kind = 8; + jjCheckNAdd(5); + } + else if ((0x50002c0000000000L & l) != 0L) + { + if (kind > 13) + kind = 13; + jjCheckNAdd(17); + } + else if (curChar == 34) + jjCheckNAddTwoStates(10, 11); + else if (curChar == 39) + jjCheckNAddTwoStates(7, 8); + else if (curChar == 37) + jjCheckNAddStates(0, 2); + break; + case 1: + if ((0xffffffffffffdbffL & l) != 0L) + jjCheckNAddStates(0, 2); + break; + case 2: + if ((0x2400L & l) != 0L && kind > 6) + kind = 6; + break; + case 3: + if (curChar == 10 && kind > 6) + kind = 6; + break; + case 4: + if (curChar == 13) + jjstateSet[jjnewStateCnt++] = 3; + break; + case 5: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 8) + kind = 8; + jjCheckNAdd(5); + break; + case 6: + if (curChar == 39) + jjCheckNAddTwoStates(7, 8); + break; + case 7: + if ((0xffffff7fffffdbffL & l) != 0L) + jjCheckNAddTwoStates(7, 8); + break; + case 8: + if (curChar == 39 && kind > 10) + kind = 10; + break; + case 9: + if (curChar == 34) + jjCheckNAddTwoStates(10, 11); + break; + case 10: + if ((0xffffff7fffffdbffL & l) != 0L) + jjCheckNAddTwoStates(10, 11); + break; + case 11: + if (curChar == 34 && kind > 10) + kind = 10; + break; + case 13: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 11) + kind = 11; + jjstateSet[jjnewStateCnt++] = 13; + break; + case 15: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 12) + kind = 12; + jjCheckNAdd(15); + break; + case 16: + if ((0x50002c0000000000L & l) == 0L) + break; + if (kind > 13) + kind = 13; + jjCheckNAdd(17); + break; + case 17: + if ((0x53ff2c0000000000L & l) == 0L) + break; + if (kind > 13) + kind = 13; + jjCheckNAdd(17); + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 18: + if ((0x7fffffec7fffffeL & l) != 0L) + { + if (kind > 13) + kind = 13; + jjCheckNAdd(17); + } + if ((0x7fffffe87fffffeL & l) != 0L) + { + if (kind > 12) + kind = 12; + jjCheckNAdd(15); + } + break; + case 0: + if ((0x7fffffe40000000L & l) != 0L) + { + if (kind > 13) + kind = 13; + jjCheckNAdd(17); + } + else if ((0x87fffffeL & l) != 0L) + { + if (kind > 11) + kind = 11; + jjCheckNAdd(13); + } + if ((0x7fffffe00000000L & l) != 0L) + { + if (kind > 12) + kind = 12; + jjCheckNAdd(15); + } + break; + case 1: + jjAddStates(0, 2); + break; + case 7: + if ((0xffffffffefffffffL & l) != 0L) + jjAddStates(3, 4); + break; + case 10: + if ((0xffffffffefffffffL & l) != 0L) + jjAddStates(5, 6); + break; + case 12: + if ((0x87fffffeL & l) == 0L) + break; + if (kind > 11) + kind = 11; + jjCheckNAdd(13); + break; + case 13: + if ((0x7fffffe87fffffeL & l) == 0L) + break; + if (kind > 11) + kind = 11; + jjCheckNAdd(13); + break; + case 14: + if ((0x7fffffe00000000L & l) == 0L) + break; + if (kind > 12) + kind = 12; + jjCheckNAdd(15); + break; + case 15: + if ((0x7fffffe87fffffeL & l) == 0L) + break; + if (kind > 12) + kind = 12; + jjCheckNAdd(15); + break; + case 16: + if ((0x7fffffe40000000L & l) == 0L) + break; + if (kind > 13) + kind = 13; + jjCheckNAdd(17); + break; + case 17: + if ((0x7fffffec7fffffeL & l) == 0L) + break; + if (kind > 13) + kind = 13; + jjCheckNAdd(17); + break; + default : break; + } + } while(i != startsAt); + } + else + { + int i2 = (curChar & 0xff) >> 6; + long l2 = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 1: + if ((jjbitVec0[i2] & l2) != 0L) + jjAddStates(0, 2); + break; + case 7: + if ((jjbitVec0[i2] & l2) != 0L) + jjAddStates(3, 4); + break; + case 10: + if ((jjbitVec0[i2] & l2) != 0L) + jjAddStates(5, 6); + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 18 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} +static final int[] jjnextStates = { + 1, 2, 4, 7, 8, 10, 11, +}; +public static final String[] jjstrLiteralImages = { +"", null, null, null, null, null, null, "\156\157\164", null, null, null, null, +null, null, null, null, null, null, "\72\55", "\56", "\54", "\50", "\51", +"\133\135", "\133", "\135", "\174", }; +public static final String[] lexStateNames = { + "DEFAULT", +}; +static final long[] jjtoToken = { + 0x7fc3d81L, +}; +static final long[] jjtoSkip = { + 0x7eL, +}; +static final long[] jjtoSpecial = { + 0x40L, +}; +protected SimpleCharStream input_stream; +private final int[] jjrounds = new int[18]; +private final int[] jjstateSet = new int[36]; +protected char curChar; +public PrologParserTokenManager(SimpleCharStream stream){ + if (SimpleCharStream.staticFlag) + throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer."); + input_stream = stream; +} +public PrologParserTokenManager(SimpleCharStream stream, int lexState){ + this(stream); + SwitchTo(lexState); +} +public void ReInit(SimpleCharStream stream) +{ + jjmatchedPos = jjnewStateCnt = 0; + curLexState = defaultLexState; + input_stream = stream; + ReInitRounds(); +} +private final void ReInitRounds() +{ + int i; + jjround = 0x80000001; + for (i = 18; i-- > 0;) + jjrounds[i] = 0x80000000; +} +public void ReInit(SimpleCharStream stream, int lexState) +{ + ReInit(stream); + SwitchTo(lexState); +} +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() +{ + Token t = Token.newToken(jjmatchedKind); + t.kind = jjmatchedKind; + String im = jjstrLiteralImages[jjmatchedKind]; + t.image = (im == null) ? input_stream.GetImage() : im; + t.beginLine = input_stream.getBeginLine(); + t.beginColumn = input_stream.getBeginColumn(); + t.endLine = input_stream.getEndLine(); + t.endColumn = input_stream.getEndColumn(); + return t; +} + +int curLexState = 0; +int defaultLexState = 0; +int jjnewStateCnt; +int jjround; +int jjmatchedPos; +int jjmatchedKind; + +public Token getNextToken() +{ + int kind; + Token specialToken = null; + Token matchedToken; + int curPos = 0; + + EOFLoop : + for (;;) + { + try + { + curChar = input_stream.BeginToken(); + } + catch(java.io.IOException e) + { + jjmatchedKind = 0; + matchedToken = jjFillToken(); + matchedToken.specialToken = specialToken; + return matchedToken; + } + + try { input_stream.backup(0); + while (curChar <= 32 && (0x100003600L & (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(); + matchedToken.specialToken = specialToken; + return matchedToken; + } + else + { + if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) + { + matchedToken = jjFillToken(); + if (specialToken == null) + specialToken = matchedToken; + else + { + matchedToken.specialToken = specialToken; + specialToken = (specialToken.next = matchedToken); + } + } + 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); + } +} + +} Modified: trunk/src/dl-learner/org/dllearner/parser/package.html =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/package.html 2008-02-08 08:57:28 UTC (rev 526) +++ trunk/src/dl-learner/org/dllearner/parser/package.html 2008-02-08 08:59:26 UTC (rev 527) @@ -2,6 +2,6 @@ <html> <head></head> <body bgcolor="white"> -<p>DL-Learner configuration file parser.</p> +<p>DL-Learner parsers. Contains a conf file parser, a KB file parser and a Prolog parser. All generated by JavaCC.</p> </body> </html> \ No newline at end of file Added: trunk/src/dl-learner/org/dllearner/parser/prolog.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/prolog.jj (rev 0) +++ trunk/src/dl-learner/org/dllearner/parser/prolog.jj 2008-02-08 08:59:26 UTC (rev 527) @@ -0,0 +1,212 @@ +/** + * Copyright (C) 2007-2008, 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/>. + * + */ + +/** + * @author Sebastian Bader + * + */ + +options { + LOOKAHEAD = 1; + STATIC = false; +} + +PARSER_BEGIN(PrologParser) + +package org.dllearner.parser; + +public class PrologParser { + public PrologParser() { + this(new java.io.StringReader("")); + } + + public org.dllearner.prolog.Term parseTerm(String src) throws ParseException { + reinitToString(src); + return term(); + } + + public java.util.ArrayList parseTermList(String src) throws ParseException { + reinitToString(src); + return termList(); + } + + public org.dllearner.prolog.Atom parseAtom(String src) throws ParseException { + reinitToString(src); + return atom(); + } + + public org.dllearner.prolog.Clause parseClause(String src) throws ParseException { + reinitToString(src); + return clause(); + } + + public org.dllearner.prolog.Program parseProgram(String src) throws ParseException { + reinitToString(src); + return program(); + } + + private void reinitToString(String src) { + ReInit(new java.io.StringReader(src)); + } +} + +PARSER_END(PrologParser) + +SKIP : { /* WHITE SPACE */ + " " | "\t" | "\n" | "\r" | "\f" +} + +SPECIAL_TOKEN : { /* COMMENTS */ + <SINGLE_LINE_COMMENT: "%" (~["\n","\r"])* ("\n"|"\r"|"\r\n")> +} + +TOKEN : /* RESERVED WORDS AND LITERALS */ +{ + < NOT: "not" > +} + +TOKEN : /* constants */ +{ + < NUMBER: (<DIGIT>)+> + | < #DIGIT: ["0" - "9"] > + | < STRINGCONSTANT: ("'" (~["'","\\","\n","\r"])* "'" | "\"" (~["'","\\","\n","\r"])* "\"" ) > +} + +TOKEN : /* Function names */ +{ + < VAR: ((<HICASE> | "_" ) (<ANYCHAR>)* ) > + | < IDENTIFIER: (<LOCASE>) (<ANYCHAR>)* > + | < OPERATOR: (<LOCASE> | <SPECIALCHAR>) (<ANYCHAR> | <SPECIALCHAR>)* > + | < #ANYCHAR: (<LOCASE> | <HICASE> | <DIGIT> | "_" ) > + | < #LOCASE: ["a"-"z"] > + | < #HICASE: ["A"-"Z"] > + | < #SPECIALCHAR: "-" | "+" | "*" | "<" | ">" | "^" > +} + +////////////////////////////////////////////////////////////////////////////////////////// + +org.dllearner.prolog.Program program() : { + org.dllearner.prolog.Program p = new org.dllearner.prolog.Program(); + org.dllearner.prolog.Clause c; +}{ + ( c = clause() { p.addClause(c); } )+ <EOF> { return p; } +} + +org.dllearner.prolog.Clause clause() : { + org.dllearner.prolog.Atom head; + org.dllearner.prolog.Body body = null; +}{ + head = atom() [ ":-" body = body() ] "." { return new org.dllearner.prolog.Clause(head, body); } +} + + +org.dllearner.prolog.Body body() : { + org.dllearner.prolog.Literal l; + org.dllearner.prolog.Body b = new org.dllearner.prolog.Body(); +}{ + l = literal() { b.addLiteral(l); } + ( "," l = literal() { b.addLiteral(l); } )* + { return b; } +} + +org.dllearner.prolog.Atom atom() : { + Token atom; + java.util.ArrayList arguments = new java.util.ArrayList() ; +}{ + atom = <IDENTIFIER> [ "(" arguments = termList() ")" ] { return new org.dllearner.prolog.Atom(atom.image, arguments); } +} + +org.dllearner.prolog.Literal literal() : { + org.dllearner.prolog.Atom a; +}{ + a = atom() { return new org.dllearner.prolog.Literal(a, true); } + | <NOT> a = atom() { return new org.dllearner.prolog.Literal(a, false); } +} + + +org.dllearner.prolog.Term term() : { + Token v; + String o; + Token f; + java.util.ArrayList arguments = null; + org.dllearner.prolog.Term t1, t2; +}{ + LOOKAHEAD(2147483647) o = prefixOp() t2 = simpleTerm() { return new org.dllearner.prolog.Function(o, t2); } + | LOOKAHEAD(2147483647) t1 = simpleTerm() o = infixOp() t2 = simpleTerm() { return new org.dllearner.prolog.Function(t1, o, t2); } + | LOOKAHEAD(2147483647) t1 = simpleTerm() o = postfixOp() { return new org.dllearner.prolog.Function(t1, o); } + | LOOKAHEAD(2147483647) t1 = simpleTerm() { return t1; } +} + + +org.dllearner.prolog.Term simpleTerm() : { + Token v; + String o; + Token f; + java.util.ArrayList arguments = null; + org.dllearner.prolog.Term l; +}{ + LOOKAHEAD(2) f = <IDENTIFIER> "(" arguments = termList() ")" { return new org.dllearner.prolog.Function(f.image, arguments); } + | LOOKAHEAD(2) f = <IDENTIFIER> { return new org.dllearner.prolog.PrologConstant(f.image); } + | v = <VAR> { return new org.dllearner.prolog.Variable(v.image); } + | v = <NUMBER> { return new org.dllearner.prolog.Number(v.image); } + | v = <STRINGCONSTANT> { return new org.dllearner.prolog.StringConstant(v.image); } + | l = list() { return l; } +} + + +String prefixOp() : { + Token f; +}{ + f = <OPERATOR> { return f.image; } +} + + +String infixOp() : { + Token f; +}{ + f = <OPERATOR> { return f.image; } +} + + +String postfixOp() : { + Token f; +}{ + f = <OPERATOR> { return f.image; } +} + + +java.util.ArrayList termList() : { + org.dllearner.prolog.Term t; + java.util.ArrayList l = new java.util.ArrayList(); +}{ + t = term() { l.add(t); } + ( "," t = term() { l.add(t); } )* + { return l; } +} + +org.dllearner.prolog.List list() : { + java.util.ArrayList content = null; + org.dllearner.prolog.Term head; + org.dllearner.prolog.List l; +}{ + "[]" { return new org.dllearner.prolog.List(); } + | LOOKAHEAD(3) "[" head = term() "]" { return new org.dllearner.prolog.List(head, null); } + | LOOKAHEAD(3) "[" head = term() "|" l = list() "]" { return new org.dllearner.prolog.List(head, l); } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-02-10 16:08:56
|
Revision: 534 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=534&view=rev Author: jenslehmann Date: 2008-02-10 08:08:51 -0800 (Sun, 10 Feb 2008) Log Message: ----------- extended list support of Prolog parser Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/PrologParser.java trunk/src/dl-learner/org/dllearner/parser/prolog.jj Modified: trunk/src/dl-learner/org/dllearner/parser/PrologParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/PrologParser.java 2008-02-10 10:54:40 UTC (rev 533) +++ trunk/src/dl-learner/org/dllearner/parser/PrologParser.java 2008-02-10 16:08:51 UTC (rev 534) @@ -255,7 +255,7 @@ final public org.dllearner.prolog.List list() throws ParseException { java.util.ArrayList content = null; - org.dllearner.prolog.Term head; + org.dllearner.prolog.Term head, tmp; org.dllearner.prolog.List l; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 24: @@ -264,12 +264,12 @@ break; default: jj_la1[7] = jj_gen; - if (jj_2_7(3)) { + if (jj_2_8(3)) { jj_consume_token(25); head = term(); jj_consume_token(26); {if (true) return new org.dllearner.prolog.List(head, null);} - } else if (jj_2_8(3)) { + } else if (jj_2_9(3)) { jj_consume_token(25); head = term(); jj_consume_token(27); @@ -277,8 +277,31 @@ jj_consume_token(26); {if (true) return new org.dllearner.prolog.List(head, l);} } else { - jj_consume_token(-1); - throw new ParseException(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 25: + content = new java.util.ArrayList(); + jj_consume_token(25); + label_4: + while (true) { + if (jj_2_7(2)) { + ; + } else { + break label_4; + } + tmp = term(); + content.add(tmp); + jj_consume_token(21); + } + tmp = term(); + content.add(tmp); + jj_consume_token(26); + {if (true) return org.dllearner.prolog.List.compose(content);} + break; + default: + jj_la1[8] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } } } throw new Error("Missing return statement in function"); @@ -340,27 +363,40 @@ finally { jj_save(7, xla); } } - final private boolean jj_3R_4() { + final 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); } + } + + final private boolean jj_3R_5() { if (jj_scan_token(OPERATOR)) return true; return false; } - final private boolean jj_3R_12() { - if (jj_3R_14()) return true; + final private boolean jj_3_7() { + if (jj_3R_9()) return true; + if (jj_scan_token(21)) return true; return false; } - final private boolean jj_3R_11() { + final private boolean jj_3R_13() { + if (jj_3R_15()) return true; + return false; + } + + final private boolean jj_3R_12() { if (jj_scan_token(STRINGCONSTANT)) return true; return false; } - final private boolean jj_3R_10() { + final private boolean jj_3R_11() { if (jj_scan_token(DOUBLE)) return true; return false; } - final private boolean jj_3R_9() { + final private boolean jj_3R_10() { if (jj_scan_token(VAR)) return true; return false; } @@ -370,28 +406,40 @@ return false; } + final private boolean jj_3R_18() { + if (jj_scan_token(25)) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_7()) { jj_scanpos = xsp; break; } + } + if (jj_3R_9()) return true; + if (jj_scan_token(26)) return true; + return false; + } + final private boolean jj_3_5() { if (jj_scan_token(IDENTIFIER)) return true; if (jj_scan_token(22)) return true; - if (jj_3R_13()) return true; + if (jj_3R_14()) return true; if (jj_scan_token(23)) return true; return false; } - final private boolean jj_3R_5() { + final private boolean jj_3R_6() { Token xsp; xsp = jj_scanpos; if (jj_3_5()) { jj_scanpos = xsp; if (jj_3_6()) { jj_scanpos = xsp; - if (jj_3R_9()) { - jj_scanpos = xsp; if (jj_3R_10()) { jj_scanpos = xsp; if (jj_3R_11()) { jj_scanpos = xsp; - if (jj_3R_12()) return true; + if (jj_3R_12()) { + jj_scanpos = xsp; + if (jj_3R_13()) return true; } } } @@ -400,81 +448,84 @@ return false; } - final private boolean jj_3_8() { + final private boolean jj_3_9() { if (jj_scan_token(25)) return true; - if (jj_3R_8()) return true; + if (jj_3R_9()) return true; if (jj_scan_token(27)) return true; - if (jj_3R_14()) return true; + if (jj_3R_15()) return true; if (jj_scan_token(26)) return true; return false; } - final private boolean jj_3_7() { + final private boolean jj_3_8() { if (jj_scan_token(25)) return true; - if (jj_3R_8()) return true; + if (jj_3R_9()) return true; if (jj_scan_token(26)) return true; return false; } - final private boolean jj_3R_16() { + final private boolean jj_3R_17() { if (jj_scan_token(24)) return true; return false; } - final private boolean jj_3R_14() { + final private boolean jj_3R_15() { Token xsp; xsp = jj_scanpos; - if (jj_3R_16()) { + if (jj_3R_17()) { jj_scanpos = xsp; - if (jj_3_7()) { + if (jj_3_8()) { jj_scanpos = xsp; - if (jj_3_8()) return true; + if (jj_3_9()) { + jj_scanpos = xsp; + if (jj_3R_18()) return true; } } + } return false; } final private boolean jj_3_4() { - if (jj_3R_5()) return true; + if (jj_3R_6()) return true; return false; } - final private boolean jj_3R_15() { + final private boolean jj_3R_16() { if (jj_scan_token(21)) return true; - if (jj_3R_8()) return true; + if (jj_3R_9()) return true; return false; } final private boolean jj_3_3() { - if (jj_3R_5()) return true; - if (jj_3R_7()) return true; + if (jj_3R_6()) return true; + if (jj_3R_8()) return true; return false; } final private boolean jj_3_2() { - if (jj_3R_5()) return true; if (jj_3R_6()) return true; - if (jj_3R_5()) return true; + if (jj_3R_7()) return true; + if (jj_3R_6()) return true; return false; } - final private boolean jj_3R_13() { - if (jj_3R_8()) return true; + final private boolean jj_3R_14() { + if (jj_3R_9()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_15()) { jj_scanpos = xsp; break; } + if (jj_3R_16()) { jj_scanpos = xsp; break; } } return false; } final private boolean jj_3_1() { - if (jj_3R_4()) return true; if (jj_3R_5()) return true; + if (jj_3R_6()) return true; return false; } - final private boolean jj_3R_8() { + final private boolean jj_3R_9() { Token xsp; xsp = jj_scanpos; if (jj_3_1()) { @@ -490,12 +541,12 @@ return false; } - final private boolean jj_3R_7() { + final private boolean jj_3R_8() { if (jj_scan_token(OPERATOR)) return true; return false; } - final private boolean jj_3R_6() { + final private boolean jj_3R_7() { if (jj_scan_token(OPERATOR)) return true; return false; } @@ -509,15 +560,15 @@ public boolean lookingAhead = false; private boolean jj_semLA; private int jj_gen; - final private int[] jj_la1 = new int[8]; + final private int[] jj_la1 = new int[9]; static private int[] jj_la1_0; static { jj_la1_0(); } private static void jj_la1_0() { - jj_la1_0 = new int[] {0x2000,0x80000,0x200000,0x400000,0x2080,0x3001900,0x200000,0x1000000,}; + jj_la1_0 = new int[] {0x2000,0x80000,0x200000,0x400000,0x2080,0x3001900,0x200000,0x1000000,0x2000000,}; } - final private JJCalls[] jj_2_rtns = new JJCalls[8]; + final private JJCalls[] jj_2_rtns = new JJCalls[9]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -530,7 +581,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < 9; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -543,7 +594,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < 9; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -553,7 +604,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < 9; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -563,7 +614,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < 9; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -572,7 +623,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < 9; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -581,7 +632,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 8; i++) jj_la1[i] = -1; + for (int i = 0; i < 9; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -697,7 +748,7 @@ la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 8; i++) { + for (int i = 0; i < 9; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { @@ -731,7 +782,7 @@ final private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 8; i++) { + for (int i = 0; i < 9; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -746,6 +797,7 @@ case 5: jj_3_6(); break; case 6: jj_3_7(); break; case 7: jj_3_8(); break; + case 8: jj_3_9(); break; } } p = p.next; Modified: trunk/src/dl-learner/org/dllearner/parser/prolog.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/prolog.jj 2008-02-10 10:54:40 UTC (rev 533) +++ trunk/src/dl-learner/org/dllearner/parser/prolog.jj 2008-02-10 16:08:51 UTC (rev 534) @@ -208,10 +208,13 @@ org.dllearner.prolog.List list() : { java.util.ArrayList content = null; - org.dllearner.prolog.Term head; + org.dllearner.prolog.Term head, tmp; org.dllearner.prolog.List l; }{ "[]" { return new org.dllearner.prolog.List(); } | LOOKAHEAD(3) "[" head = term() "]" { return new org.dllearner.prolog.List(head, null); } | LOOKAHEAD(3) "[" head = term() "|" l = list() "]" { return new org.dllearner.prolog.List(head, l); } -} + | {content = new java.util.ArrayList(); } + "[" ( LOOKAHEAD(2) tmp=term() {content.add(tmp);} ",")* tmp=term() {content.add(tmp);} "]" + { return org.dllearner.prolog.List.compose(content); } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-03-05 18:31:00
|
Revision: 690 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=690&view=rev Author: jenslehmann Date: 2008-03-05 10:30:41 -0800 (Wed, 05 Mar 2008) Log Message: ----------- KB parser extensions Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/KBParser.java trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java Modified: trunk/src/dl-learner/org/dllearner/parser/KBParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2008-03-05 18:29:41 UTC (rev 689) +++ trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2008-03-05 18:30:41 UTC (rev 690) @@ -410,6 +410,7 @@ Description c,c1,c2; NamedClass ac; ObjectProperty ar; + DatatypeProperty dp; String s; int i; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -421,21 +422,19 @@ Bottom(); {if (true) return new Nothing();} break; - case ID: - case STRING: - ac = AtomicConcept(); - {if (true) return ac;} - break; default: jj_la1[9] = jj_gen; - if (jj_2_5(2147483647)) { + if (jj_2_5(2)) { + ac = AtomicConcept(); + {if (true) return ac;} + } else if (jj_2_6(2147483647)) { jj_consume_token(22); c1 = Concept(); And(); c2 = Concept(); jj_consume_token(23); {if (true) return new Intersection(c1,c2);} - } else if (jj_2_6(2147483647)) { + } else if (jj_2_7(2147483647)) { jj_consume_token(22); c1 = Concept(); Or(); @@ -481,8 +480,29 @@ break; default: jj_la1[10] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); + if (jj_2_8(4)) { + jj_consume_token(22); + dp = DatatypeProperty(); + jj_consume_token(47); + jj_consume_token(48); + jj_consume_token(23); + {if (true) return new BooleanValueRestriction(dp, true);} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 22: + jj_consume_token(22); + dp = DatatypeProperty(); + jj_consume_token(47); + jj_consume_token(49); + jj_consume_token(23); + {if (true) return new BooleanValueRestriction(dp, false);} + break; + default: + jj_la1[11] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } } } } @@ -535,7 +555,7 @@ name = String(); break; default: - jj_la1[11] = jj_gen; + jj_la1[12] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -553,7 +573,7 @@ name = String(); break; default: - jj_la1[12] = jj_gen; + jj_la1[13] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -571,7 +591,7 @@ name = String(); break; default: - jj_la1[13] = jj_gen; + jj_la1[14] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -589,7 +609,7 @@ name = String(); break; default: - jj_la1[14] = jj_gen; + jj_la1[15] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -675,41 +695,55 @@ finally { jj_save(5, xla); } } - final private boolean jj_3R_13() { + final 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); } + } + + final 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); } + } + + final private boolean jj_3R_14() { if (jj_scan_token(19)) return true; - if (jj_3R_20()) return true; + if (jj_3R_25()) return true; if (jj_3R_4()) return true; if (jj_scan_token(COMMAND_END)) return true; if (jj_3R_2()) return true; return false; } - final private boolean jj_3_6() { + final private boolean jj_3_7() { if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; if (jj_scan_token(15)) return true; return false; } - final private boolean jj_3R_12() { + final private boolean jj_3R_13() { if (jj_scan_token(18)) return true; if (jj_3R_2()) return true; return false; } - final private boolean jj_3R_20() { + final private boolean jj_3R_25() { if (jj_scan_token(NUMBER)) return true; return false; } - final private boolean jj_3_5() { + final private boolean jj_3_6() { if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; if (jj_scan_token(14)) return true; return false; } - final private boolean jj_3R_11() { + final private boolean jj_3R_12() { if (jj_scan_token(17)) return true; if (jj_3R_4()) return true; if (jj_scan_token(COMMAND_END)) return true; @@ -717,12 +751,7 @@ return false; } - final private boolean jj_3R_24() { - if (jj_3R_22()) return true; - return false; - } - - final private boolean jj_3R_10() { + final private boolean jj_3R_11() { if (jj_scan_token(16)) return true; if (jj_3R_4()) return true; if (jj_scan_token(COMMAND_END)) return true; @@ -730,7 +759,7 @@ return false; } - final private boolean jj_3R_9() { + final private boolean jj_3R_10() { if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; if (jj_scan_token(15)) return true; @@ -750,7 +779,7 @@ return false; } - final private boolean jj_3R_8() { + final private boolean jj_3R_9() { if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; if (jj_scan_token(14)) return true; @@ -765,47 +794,35 @@ return false; } - final private boolean jj_3R_23() { - if (jj_3R_21()) return true; + final private boolean jj_3R_18() { + if (jj_3R_27()) return true; return false; } - final private boolean jj_3R_19() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_23()) { - jj_scanpos = xsp; - if (jj_3R_24()) return true; - } + final private boolean jj_3_5() { + if (jj_3R_5()) return true; return false; } - final private boolean jj_3R_16() { - if (jj_3R_22()) return true; + final private boolean jj_3R_8() { + if (jj_scan_token(13)) return true; return false; } final private boolean jj_3R_7() { - if (jj_3R_19()) return true; + if (jj_scan_token(12)) return true; return false; } - final private boolean jj_3R_6() { - if (jj_scan_token(13)) return true; - return false; - } - final private boolean jj_3R_2() { Token xsp; xsp = jj_scanpos; - if (jj_3R_5()) { - jj_scanpos = xsp; - if (jj_3R_6()) { - jj_scanpos = xsp; if (jj_3R_7()) { jj_scanpos = xsp; if (jj_3R_8()) { jj_scanpos = xsp; + if (jj_3_5()) { + jj_scanpos = xsp; if (jj_3R_9()) { jj_scanpos = xsp; if (jj_3R_10()) { @@ -816,7 +833,13 @@ jj_scanpos = xsp; if (jj_3R_13()) { jj_scanpos = xsp; - if (jj_3R_14()) return true; + if (jj_3R_14()) { + jj_scanpos = xsp; + if (jj_3R_15()) { + jj_scanpos = xsp; + if (jj_3_8()) { + jj_scanpos = xsp; + if (jj_3R_16()) return true; } } } @@ -826,44 +849,36 @@ } } } + } + } return false; } - final private boolean jj_3R_5() { - if (jj_scan_token(12)) return true; - return false; - } - - final private boolean jj_3R_21() { + final private boolean jj_3R_26() { if (jj_scan_token(ID)) return true; return false; } - final private boolean jj_3R_18() { - if (jj_3R_22()) return true; + final private boolean jj_3R_20() { + if (jj_3R_27()) return true; return false; } - final private boolean jj_3R_15() { - if (jj_3R_21()) return true; + final private boolean jj_3R_17() { + if (jj_3R_26()) return true; return false; } final private boolean jj_3R_3() { Token xsp; xsp = jj_scanpos; - if (jj_3R_15()) { + if (jj_3R_17()) { jj_scanpos = xsp; - if (jj_3R_16()) return true; + if (jj_3R_18()) return true; } return false; } - final private boolean jj_3R_22() { - if (jj_scan_token(STRING)) return true; - return false; - } - final private boolean jj_3_2() { Token xsp; xsp = jj_scanpos; @@ -884,30 +899,93 @@ return false; } - final private boolean jj_3R_14() { - if (jj_scan_token(20)) return true; - if (jj_3R_20()) return true; - if (jj_3R_4()) return true; - if (jj_scan_token(COMMAND_END)) return true; - if (jj_3R_2()) return true; + final private boolean jj_3R_24() { + if (jj_3R_27()) return true; return false; } - final private boolean jj_3R_17() { - if (jj_3R_21()) return true; + final private boolean jj_3R_19() { + if (jj_3R_26()) return true; return false; } final private boolean jj_3R_4() { Token xsp; xsp = jj_scanpos; - if (jj_3R_17()) { + if (jj_3R_19()) { jj_scanpos = xsp; - if (jj_3R_18()) return true; + if (jj_3R_20()) return true; } return false; } + final private boolean jj_3R_22() { + if (jj_3R_27()) return true; + return false; + } + + final private boolean jj_3R_23() { + if (jj_3R_26()) return true; + return false; + } + + final private boolean jj_3R_6() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_23()) { + jj_scanpos = xsp; + if (jj_3R_24()) return true; + } + return false; + } + + final private boolean jj_3R_21() { + if (jj_3R_26()) return true; + return false; + } + + final private boolean jj_3R_5() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_21()) { + jj_scanpos = xsp; + if (jj_3R_22()) return true; + } + return false; + } + + final private boolean jj_3R_27() { + if (jj_scan_token(STRING)) return true; + return false; + } + + final private boolean jj_3R_16() { + if (jj_scan_token(22)) return true; + if (jj_3R_6()) return true; + if (jj_scan_token(47)) return true; + if (jj_scan_token(49)) return true; + if (jj_scan_token(23)) return true; + return false; + } + + final private boolean jj_3_8() { + if (jj_scan_token(22)) return true; + if (jj_3R_6()) return true; + if (jj_scan_token(47)) return true; + if (jj_scan_token(48)) return true; + if (jj_scan_token(23)) return true; + return false; + } + + final private boolean jj_3R_15() { + if (jj_scan_token(20)) return true; + if (jj_3R_25()) return true; + if (jj_3R_4()) return true; + if (jj_scan_token(COMMAND_END)) return true; + if (jj_3R_2()) return true; + return false; + } + public KBParserTokenManager token_source; SimpleCharStream jj_input_stream; public Token token, jj_nt; @@ -917,7 +995,7 @@ public boolean lookingAhead = false; private boolean jj_semLA; private int jj_gen; - final private int[] jj_la1 = new int[15]; + final private int[] jj_la1 = new int[16]; static private int[] jj_la1_0; static private int[] jj_la1_1; static { @@ -925,12 +1003,12 @@ jj_la1_1(); } private static void jj_la1_0() { - jj_la1_0 = new int[] {0xf07f3200,0xf0000000,0x40000,0xc000000,0x0,0x0,0x0,0x0,0x0,0x203200,0x1f0000,0x200200,0x200200,0x200200,0x200200,}; + jj_la1_0 = new int[] {0xf07f3200,0xf0000000,0x40000,0xc000000,0x0,0x0,0x0,0x0,0x0,0x3000,0x1f0000,0x400000,0x200200,0x200200,0x200200,0x200200,}; } private static void jj_la1_1() { - jj_la1_1 = new int[] {0xffd,0xffd,0x0,0x2,0x1c,0x60,0x380,0xc00,0x7000,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0xffd,0xffd,0x0,0x2,0x1c,0x60,0x380,0xc00,0x7000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } - final private JJCalls[] jj_2_rtns = new JJCalls[6]; + final private JJCalls[] jj_2_rtns = new JJCalls[8]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -943,7 +1021,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 15; i++) jj_la1[i] = -1; + for (int i = 0; i < 16; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -956,7 +1034,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 15; i++) jj_la1[i] = -1; + for (int i = 0; i < 16; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -966,7 +1044,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 15; i++) jj_la1[i] = -1; + for (int i = 0; i < 16; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -976,7 +1054,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 15; i++) jj_la1[i] = -1; + for (int i = 0; i < 16; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -985,7 +1063,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 15; i++) jj_la1[i] = -1; + for (int i = 0; i < 16; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -994,7 +1072,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 15; i++) jj_la1[i] = -1; + for (int i = 0; i < 16; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -1105,12 +1183,12 @@ public ParseException generateParseException() { jj_expentries.removeAllElements(); - boolean[] la1tokens = new boolean[47]; + boolean[] la1tokens = new boolean[50]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 15; i++) { + for (int i = 0; i < 16; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { @@ -1122,7 +1200,7 @@ } } } - for (int i = 0; i < 47; i++) { + for (int i = 0; i < 50; i++) { if (la1tokens[i]) { jj_expentry = new int[1]; jj_expentry[0] = i; @@ -1147,7 +1225,7 @@ final private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 6; i++) { + for (int i = 0; i < 8; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -1160,6 +1238,8 @@ 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; } } p = p.next; Modified: trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java 2008-03-05 18:29:41 UTC (rev 689) +++ trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java 2008-03-05 18:30:41 UTC (rev 690) @@ -72,6 +72,9 @@ "\"DOUBLE\"", "\"BOOLEAN\"", "\"INTEGER\"", + "\"IS\"", + "\"TRUE\"", + "\"FALSE\"", }; } Modified: trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java 2008-03-05 18:29:41 UTC (rev 689) +++ trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java 2008-03-05 18:30:41 UTC (rev 690) @@ -15,7 +15,7 @@ case 0: if ((active0 & 0x34c000000L) != 0L) return 10; - if ((active0 & 0x20000000L) != 0L) + if ((active0 & 0x2000020000000L) != 0L) return 18; if ((active0 & 0x4000L) != 0L) return 13; @@ -67,9 +67,9 @@ case 68: return jjMoveStringLiteralDfa1_0(0x1c6400000000L); case 70: - return jjMoveStringLiteralDfa1_0(0x20000000L); + return jjMoveStringLiteralDfa1_0(0x2000020000000L); case 73: - return jjMoveStringLiteralDfa1_0(0x400080000000L); + return jjMoveStringLiteralDfa1_0(0xc00080000000L); case 79: return jjMoveStringLiteralDfa1_0(0x31800008000L); case 82: @@ -77,7 +77,7 @@ case 83: return jjMoveStringLiteralDfa1_0(0x34c000000L); case 84: - return jjMoveStringLiteralDfa1_0(0x10001000L); + return jjMoveStringLiteralDfa1_0(0x1000010001000L); default : return jjMoveNfa_0(0, 0); } @@ -98,7 +98,7 @@ return jjStopAtPos(1, 20); break; case 65: - return jjMoveStringLiteralDfa2_0(active0, 0x8c000000000L); + return jjMoveStringLiteralDfa2_0(active0, 0x208c000000000L); case 66: return jjMoveStringLiteralDfa2_0(active0, 0x21000000000L); case 78: @@ -110,6 +110,10 @@ case 82: if ((active0 & 0x8000L) != 0L) return jjStopAtPos(1, 15); + return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000L); + case 83: + if ((active0 & 0x800000000000L) != 0L) + return jjStopAtPos(1, 47); break; case 85: return jjMoveStringLiteralDfa2_0(active0, 0x20c000000L); @@ -150,6 +154,8 @@ return jjMoveStringLiteralDfa3_0(active0, 0x2800000000L); case 74: return jjMoveStringLiteralDfa3_0(active0, 0x21000000000L); + case 76: + return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000L); case 77: return jjMoveStringLiteralDfa3_0(active0, 0x400000000L); case 78: @@ -165,7 +171,7 @@ case 84: return jjMoveStringLiteralDfa3_0(active0, 0x484000002000L); case 85: - return jjMoveStringLiteralDfa3_0(active0, 0x100000000000L); + return jjMoveStringLiteralDfa3_0(active0, 0x1100000000000L); case 97: return jjMoveStringLiteralDfa3_0(active0, 0x10000000L); case 98: @@ -199,6 +205,8 @@ case 67: return jjMoveStringLiteralDfa4_0(active0, 0x204000000L); case 69: + if ((active0 & 0x1000000000000L) != 0L) + return jjStopAtPos(3, 48); return jjMoveStringLiteralDfa4_0(active0, 0x421000000000L); case 71: return jjMoveStringLiteralDfa4_0(active0, 0x8000000000L); @@ -206,6 +214,8 @@ return jjMoveStringLiteralDfa4_0(active0, 0x200000000000L); case 79: return jjMoveStringLiteralDfa4_0(active0, 0x2800000000L); + case 83: + return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000L); case 84: return jjMoveStringLiteralDfa4_0(active0, 0x2000L); case 99: @@ -239,6 +249,8 @@ case 69: if ((active0 & 0x8000000000L) != 0L) return jjStopAtPos(4, 39); + else if ((active0 & 0x2000000000000L) != 0L) + return jjStopAtPos(4, 49); return jjMoveStringLiteralDfa5_0(active0, 0x200000000000L); case 71: return jjMoveStringLiteralDfa5_0(active0, 0x400000000000L); @@ -1144,12 +1156,12 @@ "\104\101\124\101\124\131\120\105\120\122\117\120\105\122\124\131\104\117\115\101\111\116", "\122\101\116\107\105", "\117\120\122\101\116\107\105", "\117\102\112\105\103\124\120\122\117\120\105\122\124\131\122\101\116\107\105", "\104\120\122\101\116\107\105", "\104\101\124\101\124\131\120\105\120\122\117\120\105\122\124\131\122\101\116\107\105", "\104\117\125\102\114\105", "\102\117\117\114\105\101\116", -"\111\116\124\105\107\105\122", }; +"\111\116\124\105\107\105\122", "\111\123", "\124\122\125\105", "\106\101\114\123\105", }; public static final String[] lexStateNames = { "DEFAULT", }; static final long[] jjtoToken = { - 0x7fffffffff01L, + 0x3ffffffffff01L, }; static final long[] jjtoSkip = { 0xfeL, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-06-22 11:09:39
|
Revision: 975 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=975&view=rev Author: jenslehmann Date: 2008-06-22 04:09:36 -0700 (Sun, 22 Jun 2008) Log Message: ----------- parser fixes Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/ConfParser.java trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java trunk/src/dl-learner/org/dllearner/parser/KBParser.java trunk/src/dl-learner/org/dllearner/parser/conf.jj trunk/src/dl-learner/org/dllearner/parser/kb.jj Modified: trunk/src/dl-learner/org/dllearner/parser/ConfParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParser.java 2008-06-21 14:27:17 UTC (rev 974) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParser.java 2008-06-22 11:09:36 UTC (rev 975) @@ -20,8 +20,7 @@ import org.dllearner.Info; import org.dllearner.cli.*; -import org.dllearner.utilities.*; -import org.dllearner.utilities.datastructures.StringTuple; +import org.dllearner.utilities.datastructures.*; public @SuppressWarnings("all") class ConfParser implements ConfParserConstants { Modified: trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java 2008-06-21 14:27:17 UTC (rev 974) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java 2008-06-22 11:09:36 UTC (rev 975) @@ -16,7 +16,7 @@ import java.io.StringReader; import org.dllearner.Info; import org.dllearner.cli.*; -import org.dllearner.utilities.*; +import org.dllearner.utilities.datastructures.*; public @SuppressWarnings("all") class ConfParserTokenManager implements ConfParserConstants { Modified: trunk/src/dl-learner/org/dllearner/parser/KBParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2008-06-21 14:27:17 UTC (rev 974) +++ trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2008-06-22 11:09:36 UTC (rev 975) @@ -18,12 +18,6 @@ return internalNamespace + name; } - //TODO beware of this function it is evil - public static Description parseConcept(String string, String namespace) throws ParseException { - internalNamespace = namespace; - return parseConcept(string); - } - public static Description parseConcept(String string) throws ParseException { // when just parsing the string as concept, we have no guarantee // that the parser uses all symbols, e.g. a AND b returns just a @@ -36,6 +30,12 @@ return eqAxiom.getConcept2(); } + //TODO beware of this function it is evil (author: Sebastian Hellmann) + public static Description parseConcept(String string, String namespace) throws ParseException { + internalNamespace = namespace; + return parseConcept(string); + } + public static KB parseKBFile(String content) throws IOException, ParseException { KBParser parser = new KBParser(new StringReader(content)); return parser.KB(); @@ -715,15 +715,6 @@ finally { jj_save(7, xla); } } - final private boolean jj_3R_14() { - if (jj_scan_token(19)) return true; - if (jj_3R_25()) return true; - if (jj_3R_4()) return true; - if (jj_scan_token(COMMAND_END)) return true; - if (jj_3R_2()) return true; - return false; - } - final private boolean jj_3_7() { if (jj_scan_token(22)) return true; if (jj_3R_2()) return true; @@ -992,6 +983,15 @@ return false; } + final private boolean jj_3R_14() { + if (jj_scan_token(19)) return true; + if (jj_3R_25()) return true; + if (jj_3R_4()) return true; + if (jj_scan_token(COMMAND_END)) return true; + if (jj_3R_2()) return true; + return false; + } + public KBParserTokenManager token_source; SimpleCharStream jj_input_stream; public Token token, jj_nt; Modified: trunk/src/dl-learner/org/dllearner/parser/conf.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/conf.jj 2008-06-21 14:27:17 UTC (rev 974) +++ trunk/src/dl-learner/org/dllearner/parser/conf.jj 2008-06-22 11:09:36 UTC (rev 975) @@ -49,7 +49,7 @@ import org.dllearner.Info; import org.dllearner.cli.*; -import org.dllearner.utilities.*; +import org.dllearner.utilities.datastructures.*; public class ConfParser { Modified: trunk/src/dl-learner/org/dllearner/parser/kb.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/kb.jj 2008-06-21 14:27:17 UTC (rev 974) +++ trunk/src/dl-learner/org/dllearner/parser/kb.jj 2008-06-22 11:09:36 UTC (rev 975) @@ -59,6 +59,12 @@ return eqAxiom.getConcept2(); } + //TODO beware of this function it is evil (author: Sebastian Hellmann) + public static Description parseConcept(String string, String namespace) throws ParseException { + internalNamespace = namespace; + return parseConcept(string); + } + public static KB parseKBFile(String content) throws IOException, ParseException { KBParser parser = new KBParser(new StringReader(content)); return parser.KB(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2007-09-04 14:11:33
|
Revision: 85 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=85&view=rev Author: jenslehmann Date: 2007-08-28 06:23:47 -0700 (Tue, 28 Aug 2007) Log Message: ----------- updated parser with more getters and ability to parse several files in a row Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java trunk/src/dl-learner/org/dllearner/parser/dllearner.jj trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt Modified: trunk/src/dl-learner/org/dllearner/parser/DLLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearner.java 2007-08-28 11:42:35 UTC (rev 84) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearner.java 2007-08-28 13:23:47 UTC (rev 85) @@ -81,6 +81,18 @@ return negativeExamples; } + public static List<ConfigurationOption> getConfOptions() { + return confOptions; + } + + public static List<List<String>> getFunctionCalls() { + return functionCalls; + } + + public static KB getKB() { + return kb; + } + /* private static void addFunctionCall(String functionName, String argument) { if(functionCalls.containsKey(functionName)) { @@ -137,7 +149,11 @@ public static void parseFile(String filename) { try { - new DLLearner(new FileInputStream(filename)); + if(constructorCalled) + DLLearner.ReInit(new FileInputStream(filename)); + else + new DLLearner(new FileInputStream(filename)); + constructorCalled = true; DLLearner.Start(); } catch(Exception e) { e.printStackTrace(); @@ -1561,25 +1577,6 @@ finally { jj_save(11, xla); } } - static final private boolean jj_3R_19() { - if (jj_3R_4()) return true; - return false; - } - - static final private boolean jj_3R_9() { - if (jj_3R_12()) return true; - return false; - } - - static final private boolean jj_3R_36() { - if (jj_3R_50()) return true; - if (jj_3R_22()) return true; - if (jj_3R_17()) return true; - if (jj_scan_token(COMMAND_END)) return true; - if (jj_3R_14()) return true; - return false; - } - static final private boolean jj_3R_18() { if (jj_3R_12()) return true; return false; @@ -2012,6 +2009,25 @@ return false; } + static final private boolean jj_3R_19() { + if (jj_3R_4()) return true; + return false; + } + + static final private boolean jj_3R_9() { + if (jj_3R_12()) return true; + return false; + } + + static final private boolean jj_3R_36() { + if (jj_3R_50()) return true; + if (jj_3R_22()) return true; + if (jj_3R_17()) return true; + if (jj_scan_token(COMMAND_END)) return true; + if (jj_3R_14()) return true; + return false; + } + static private boolean jj_initialized_once = false; static public DLLearnerTokenManager token_source; static SimpleCharStream jj_input_stream; Modified: trunk/src/dl-learner/org/dllearner/parser/dllearner.jj =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/dllearner.jj 2007-08-28 11:42:35 UTC (rev 84) +++ trunk/src/dl-learner/org/dllearner/parser/dllearner.jj 2007-08-28 13:23:47 UTC (rev 85) @@ -99,6 +99,18 @@ return negativeExamples; } + public static List<ConfigurationOption> getConfOptions() { + return confOptions; + } + + public static List<List<String>> getFunctionCalls() { + return functionCalls; + } + + public static KB getKB() { + return kb; + } + /* private static void addFunctionCall(String functionName, String argument) { if(functionCalls.containsKey(functionName)) { @@ -155,7 +167,11 @@ public static void parseFile(String filename) { try { - new DLLearner(new FileInputStream(filename)); + if(constructorCalled) + DLLearner.ReInit(new FileInputStream(filename)); + else + new DLLearner(new FileInputStream(filename)); + constructorCalled = true; DLLearner.Start(); } catch(Exception e) { e.printStackTrace(); Modified: trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt 2007-08-28 11:42:35 UTC (rev 84) +++ trunk/src/dl-learner/org/dllearner/parser/dllearner.jjt 2007-08-28 13:23:47 UTC (rev 85) @@ -95,6 +95,18 @@ return negativeExamples; } + public static List<ConfigurationOption> getConfOptions() { + return confOptions; + } + + public static List<List<String>> getFunctionCalls() { + return functionCalls; + } + + public static KB getKB() { + return kb; + } + /* private static void addFunctionCall(String functionName, String argument) { if(functionCalls.containsKey(functionName)) { @@ -151,7 +163,11 @@ public static void parseFile(String filename) { try { - new DLLearner(new FileInputStream(filename)); + if(constructorCalled) + DLLearner.ReInit(new FileInputStream(filename)); + else + new DLLearner(new FileInputStream(filename)); + constructorCalled = true; DLLearner.Start(); } catch(Exception e) { e.printStackTrace(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2007-10-03 07:41:56
|
Revision: 163 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=163&view=rev Author: jenslehmann Date: 2007-10-03 00:41:53 -0700 (Wed, 03 Oct 2007) Log Message: ----------- further parser changes Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/parser/ConfParser.java trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java trunk/src/dl-learner/org/dllearner/parser/KBParser.java trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/parser/confttest.jj trunk/src/dl-learner/org/dllearner/parser/kbtest.jj Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/parser/ConfParserTreeConstants.java trunk/src/dl-learner/org/dllearner/parser/DLLearnerTreeConstants.java trunk/src/dl-learner/org/dllearner/parser/JJTConfParserState.java trunk/src/dl-learner/org/dllearner/parser/JJTKBParserState.java trunk/src/dl-learner/org/dllearner/parser/KBParserTreeConstants.java trunk/src/dl-learner/org/dllearner/parser/Node.java trunk/src/dl-learner/org/dllearner/parser/ParseException.java trunk/src/dl-learner/org/dllearner/parser/SimpleCharStream.java trunk/src/dl-learner/org/dllearner/parser/Token.java trunk/src/dl-learner/org/dllearner/parser/TokenMgrError.java trunk/src/dl-learner/org/dllearner/parser/conf.jj trunk/src/dl-learner/org/dllearner/parser/conf.jjt trunk/src/dl-learner/org/dllearner/parser/dllearner.jj trunk/src/dl-learner/org/dllearner/parser/kb.jj trunk/src/dl-learner/org/dllearner/parser/kb.jjt Modified: trunk/src/dl-learner/org/dllearner/parser/ConfParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParser.java 2007-10-02 17:42:58 UTC (rev 162) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParser.java 2007-10-03 07:41:53 UTC (rev 163) @@ -1,4 +1,4 @@ -/* Generated By:JJTree&JavaCC: Do not edit this line. ConfParser.java */ +/* Generated By:JavaCC: Do not edit this line. ConfParser.java */ package org.dllearner.parser; import java.util.List; @@ -23,8 +23,8 @@ import org.dllearner.ConfigurationOption; import org.dllearner.utilities.*; -public @SuppressWarnings("all") class ConfParser/*@bgen(jjtree)*/implements ConfParserTreeConstants, ConfParserConstants {/*@bgen(jjtree)*/ - protected JJTConfParserState jjtree = new JJTConfParserState(); +public @SuppressWarnings("all") class ConfParser implements ConfParserConstants { + private SortedSet<Individual> positiveExamples = new TreeSet<Individual>(); private SortedSet<Individual> negativeExamples = new TreeSet<Individual>(); @@ -122,7 +122,7 @@ System.out.print("Parsing " + f.getName() + " ... "); long parseStartTime = System.currentTimeMillis(); - SimpleNode n = null; + // SimpleNode n = null; ConfParser learner = null; try { learner = new ConfParser(new FileInputStream(args[args.length-1])); @@ -132,7 +132,7 @@ System.exit(0); } try { - n = learner.Start(); + learner.Start(); // n.dump(""); // System.out.println("Thank you."); } catch (Exception e) { @@ -168,138 +168,92 @@ // new Main(kb,positiveExamples,negativeExamples,confOptions,functionCalls,baseDir,queryMode); } - final public SimpleNode Start() throws ParseException { - /*@bgen(jjtree) Start */ - SimpleNode jjtn000 = new SimpleNode(JJTSTART); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);ConceptAssertion conceptAssertion; + final public void Start() throws ParseException { + ConceptAssertion conceptAssertion; RoleAssertion roleAssertion; RBoxAxiom rBoxAxiom; Equality equality; Inclusion inclusion; ConfigurationOption confOption; - try { - label_1: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case POS_EX: - case NEG_EX: - case ID: - ; - break; - default: - jj_la1[0] = jj_gen; - break label_1; - } - if (jj_2_1(2147483647)) { - confOption = ConfOption(); + label_1: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case POS_EX: + case NEG_EX: + case ID: + ; + break; + default: + jj_la1[0] = jj_gen; + break label_1; + } + if (jj_2_1(2147483647)) { + confOption = ConfOption(); confOptions.add(confOption); - } else if (jj_2_2(2147483647)) { - FunctionCall(); - } else if (jj_2_3(2147483647)) { - PosExample(); - } else if (jj_2_4(2147483647)) { - NegExample(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } + } else if (jj_2_2(2147483647)) { + FunctionCall(); + } else if (jj_2_3(2147483647)) { + PosExample(); + } else if (jj_2_4(2147483647)) { + NegExample(); + } else { + jj_consume_token(-1); + throw new ParseException(); } - jj_consume_token(0); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; - {if (true) return jjtn000;} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } - throw new Error("Missing return statement in function"); + jj_consume_token(0); } final public ConfigurationOption ConfOption() throws ParseException { - /*@bgen(jjtree) ConfOption */ - SimpleNode jjtn000 = new SimpleNode(JJTCONFOPTION); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);boolean containsSubOption=false, isNumeric=false, isDouble=false, isSet=false; + boolean containsSubOption=false, isNumeric=false, isDouble=false, isSet=false; String option="", subOption="", value="", tmp=""; int number = 0; double numberDouble = 0; ConfigurationOption confOption; Set<String> values = new HashSet<String>(); - try { - option = Id(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMAND_END: - jj_consume_token(COMMAND_END); - subOption = Id(); + option = Id(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMAND_END: + jj_consume_token(COMMAND_END); + subOption = Id(); containsSubOption=true; - break; - default: - jj_la1[1] = jj_gen; - ; - } - jj_consume_token(25); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ID: - value = Id(); - break; - case STRING: - value = String(); - break; - case NUMBER: - number = Integer(); + break; + default: + jj_la1[1] = jj_gen; + ; + } + jj_consume_token(25); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + value = Id(); + break; + case STRING: + value = String(); + break; + case NUMBER: + number = Integer(); isNumeric=true; - break; - case DOUBLE: - numberDouble = Double(); + break; + case DOUBLE: + numberDouble = Double(); isNumeric=true; isDouble=true; - break; - default: - jj_la1[4] = jj_gen; - if (jj_2_6(2147483647)) { - jj_consume_token(26); - jj_consume_token(27); + break; + default: + jj_la1[4] = jj_gen; + if (jj_2_6(2147483647)) { + jj_consume_token(26); + jj_consume_token(27); isSet=true; - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 26: - jj_consume_token(26); - label_2: - while (true) { - if (jj_2_5(2)) { - ; - } else { - break label_2; - } - 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(); - } - values.add(tmp); - jj_consume_token(28); + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 26: + jj_consume_token(26); + label_2: + while (true) { + if (jj_2_5(2)) { + ; + } else { + break label_2; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STRING: @@ -309,24 +263,37 @@ tmp = Id(); break; default: - jj_la1[3] = jj_gen; + jj_la1[2] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - values.add(tmp); - jj_consume_token(27); - isSet=true; + values.add(tmp); + jj_consume_token(28); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STRING: + tmp = String(); break; + case ID: + tmp = Id(); + break; default: - jj_la1[5] = jj_gen; + jj_la1[3] = jj_gen; jj_consume_token(-1); throw new ParseException(); } + values.add(tmp); + jj_consume_token(27); + isSet=true; + break; + default: + jj_la1[5] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); } } - jj_consume_token(CONF_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + } + jj_consume_token(CONF_END); if(containsSubOption) { if(isNumeric) if(isDouble) @@ -353,259 +320,96 @@ {if (true) return confOption;} // confOptions.add(confOption); - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public void FunctionCall() throws ParseException { - /*@bgen(jjtree) FunctionCall */ - SimpleNode jjtn000 = new SimpleNode(JJTFUNCTIONCALL); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);String s, s1, s2; + String s, s1, s2; List<String> list = new LinkedList<String>(); - try { - s1 = Id(); - jj_consume_token(29); - s2 = String(); + s1 = Id(); + jj_consume_token(29); + s2 = String(); list.add(s1); list.add(s2); - label_3: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 28: - ; - break; - default: - jj_la1[6] = jj_gen; - break label_3; - } - jj_consume_token(28); - s = String(); - list.add(s); + label_3: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 28: + ; + break; + default: + jj_la1[6] = jj_gen; + break label_3; } - jj_consume_token(30); - jj_consume_token(CONF_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; - functionCalls.add(list); - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } + jj_consume_token(28); + s = String(); + list.add(s); } + jj_consume_token(30); + jj_consume_token(CONF_END); + functionCalls.add(list); } final public void PosExample() throws ParseException { - /*@bgen(jjtree) PosExample */ - SimpleNode jjtn000 = new SimpleNode(JJTPOSEXAMPLE); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Individual i; - try { - jj_consume_token(POS_EX); - i = Individual(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + Individual i; + jj_consume_token(POS_EX); + i = Individual(); positiveExamples.add(i); - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } } final public void NegExample() throws ParseException { - /*@bgen(jjtree) NegExample */ - SimpleNode jjtn000 = new SimpleNode(JJTNEGEXAMPLE); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Individual i; - try { - jj_consume_token(NEG_EX); - i = Individual(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + Individual i; + jj_consume_token(NEG_EX); + i = Individual(); negativeExamples.add(i); - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } } final public Individual Individual() throws ParseException { - /*@bgen(jjtree) Individual */ - SimpleNode jjtn000 = new SimpleNode(JJTINDIVIDUAL); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);String name; - try { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ID: - name = Id(); - break; - case STRING: - name = String(); - break; - default: - jj_la1[7] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; - {if (true) return new Individual(KBParser.getInternalURI(name));} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } + String name; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + name = Id(); + break; + case STRING: + name = String(); + break; + default: + jj_la1[7] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); } + {if (true) return new Individual(KBParser.getInternalURI(name));} throw new Error("Missing return statement in function"); } final public String Id() throws ParseException { - /*@bgen(jjtree) Id */ - SimpleNode jjtn000 = new SimpleNode(JJTID); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Token t; - try { - t = jj_consume_token(ID); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + Token t; + t = jj_consume_token(ID); {if (true) return t.image;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public double Double() throws ParseException { - /*@bgen(jjtree) Double */ - SimpleNode jjtn000 = new SimpleNode(JJTDOUBLE); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Token t; - try { - t = jj_consume_token(DOUBLE); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + Token t; + t = jj_consume_token(DOUBLE); {if (true) return new Double(t.image);} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public int Integer() throws ParseException { - /*@bgen(jjtree) Integer */ - SimpleNode jjtn000 = new SimpleNode(JJTINTEGER); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Token t; - try { - t = jj_consume_token(NUMBER); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + Token t; + t = jj_consume_token(NUMBER); {if (true) return new Integer(t.image);} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public String String() throws ParseException { - /*@bgen(jjtree) String */ - SimpleNode jjtn000 = new SimpleNode(JJTSTRING); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Token t; + Token t; String s; - try { - t = jj_consume_token(STRING); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + t = jj_consume_token(STRING); // enclosing "" are removed s = t.image; s = s.substring(1, s.length() - 1); {if (true) return s;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } @@ -688,13 +492,13 @@ return false; } - final private boolean jj_3R_16() { - if (jj_scan_token(NUMBER)) return true; + final private boolean jj_3R_20() { + if (jj_3R_4()) return true; return false; } - final private boolean jj_3R_20() { - if (jj_3R_4()) return true; + final private boolean jj_3R_16() { + if (jj_scan_token(NUMBER)) return true; return false; } @@ -755,13 +559,13 @@ return false; } - final private boolean jj_3R_17() { - if (jj_scan_token(DOUBLE)) return true; + final private boolean jj_3R_19() { + if (jj_3R_12()) return true; return false; } - final private boolean jj_3R_19() { - if (jj_3R_12()) return true; + final private boolean jj_3R_17() { + if (jj_scan_token(DOUBLE)) return true; return false; } @@ -790,18 +594,18 @@ return false; } - final private boolean jj_3_6() { - if (jj_scan_token(26)) return true; - if (jj_scan_token(27)) return true; - return false; - } - final private boolean jj_3R_13() { if (jj_scan_token(28)) return true; if (jj_3R_12()) return true; return false; } + final private boolean jj_3_6() { + if (jj_scan_token(26)) return true; + if (jj_scan_token(27)) return true; + return false; + } + final private boolean jj_3_5() { Token xsp; xsp = jj_scanpos; @@ -876,7 +680,6 @@ token_source.ReInit(jj_input_stream); token = new Token(); jj_ntk = -1; - jjtree.reset(); jj_gen = 0; for (int i = 0; i < 8; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); @@ -897,7 +700,6 @@ token_source.ReInit(jj_input_stream); token = new Token(); jj_ntk = -1; - jjtree.reset(); jj_gen = 0; for (int i = 0; i < 8; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); @@ -916,7 +718,6 @@ token_source = tm; token = new Token(); jj_ntk = -1; - jjtree.reset(); jj_gen = 0; for (int i = 0; i < 8; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); @@ -993,7 +794,7 @@ return (jj_ntk = jj_nt.kind); } - private java.util.Vector jj_expentries = new java.util.Vector(); + private java.util.Vector<int[]> jj_expentries = new java.util.Vector<int[]>(); private int[] jj_expentry; private int jj_kind = -1; private int[] jj_lasttokens = new int[100]; @@ -1055,7 +856,7 @@ jj_add_error_token(0, 0); int[][] exptokseq = new int[jj_expentries.size()][]; for (int i = 0; i < jj_expentries.size(); i++) { - exptokseq[i] = (int[])jj_expentries.elementAt(i); + exptokseq[i] = jj_expentries.elementAt(i); } return new ParseException(token, exptokseq, tokenImage); } Modified: trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java 2007-10-02 17:42:58 UTC (rev 162) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java 2007-10-03 07:41:53 UTC (rev 163) @@ -1,4 +1,4 @@ -/* Generated By:JJTree&JavaCC: Do not edit this line. ConfParserConstants.java */ +/* Generated By:JavaCC: Do not edit this line. ConfParserConstants.java */ package org.dllearner.parser; public @SuppressWarnings("all") interface ConfParserConstants { Modified: trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java 2007-10-02 17:42:58 UTC (rev 162) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java 2007-10-03 07:41:53 UTC (rev 163) @@ -1,4 +1,4 @@ -/* Generated By:JJTree&JavaCC: Do not edit this line. ConfParserTokenManager.java */ +/* Generated By:JavaCC: Do not edit this line. ConfParserTokenManager.java */ package org.dllearner.parser; import java.util.List; import java.util.LinkedList; Deleted: trunk/src/dl-learner/org/dllearner/parser/ConfParserTreeConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/ConfParserTreeConstants.java 2007-10-02 17:42:58 UTC (rev 162) +++ trunk/src/dl-learner/org/dllearner/parser/ConfParserTreeConstants.java 2007-10-03 07:41:53 UTC (rev 163) @@ -1,31 +0,0 @@ -/* Generated By:JJTree: Do not edit this line. ./ConfParserTreeConstants.java */ - -package org.dllearner.parser; - -public @SuppressWarnings("all") interface ConfParserTreeConstants -{ - public int JJTSTART = 0; - public int JJTCONFOPTION = 1; - public int JJTFUNCTIONCALL = 2; - public int JJTPOSEXAMPLE = 3; - public int JJTNEGEXAMPLE = 4; - public int JJTINDIVIDUAL = 5; - public int JJTID = 6; - public int JJTDOUBLE = 7; - public int JJTINTEGER = 8; - public int JJTSTRING = 9; - - - public String[] jjtNodeName = { - "Start", - "ConfOption", - "FunctionCall", - "PosExample", - "NegExample", - "Individual", - "Id", - "Double", - "Integer", - "String", - }; -} Deleted: trunk/src/dl-learner/org/dllearner/parser/DLLearnerTreeConstants.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/DLLearnerTreeConstants.java 2007-10-02 17:42:58 UTC (rev 162) +++ trunk/src/dl-learner/org/dllearner/parser/DLLearnerTreeConstants.java 2007-10-03 07:41:53 UTC (rev 163) @@ -1,75 +0,0 @@ -/* Generated By:JJTree: Do not edit this line. ./DLLearnerTreeConstants.java */ - -package org.dllearner.parser; - -public @SuppressWarnings("all") interface DLLearnerTreeConstants -{ - public int JJTSTART = 0; - public int JJTPARSEKB = 1; - public int JJTCONFOPTION = 2; - public int JJTFUNCTIONCALL = 3; - public int JJTPOSEXAMPLE = 4; - public int JJTNEGEXAMPLE = 5; - public int JJTABOXCONCEPT = 6; - public int JJTABOXROLE = 7; - public int JJTTRANSITIVE = 8; - public int JJTFUNCTIONAL = 9; - public int JJTSYMMETRIC = 10; - public int JJTINVERSE = 11; - public int JJTSUBROLE = 12; - public int JJTTBOXEQUIV = 13; - public int JJTTBOXSUB = 14; - public int JJTCONCEPT = 15; - public int JJTOR = 16; - public int JJTAND = 17; - public int JJTTOP = 18; - public int JJTBOTTOM = 19; - public int JJTEXISTS = 20; - public int JJTALL = 21; - public int JJTNOT = 22; - public int JJTGE = 23; - public int JJTLE = 24; - public int JJTATOMICCONCEPT = 25; - public int JJTATOMICROLE = 26; - public int JJTINDIVIDUAL = 27; - public int JJTID = 28; - public int JJTDOUBLE = 29; - public int JJTINTEGER = 30; - public int JJTSTRING = 31; - - - public String[] jjtNodeName = { - "Start", - "parseKB", - "ConfOption", - "FunctionCall", - "PosExample", - "NegExample", - "ABoxConcept", - "ABoxRole", - "Transitive", - "Functional", - "Symmetric", - "Inverse", - "Subrole", - "TBoxEquiv", - "TBoxSub", - "Concept", - "Or", - "And", - "Top", - "Bottom", - "Exists", - "All", - "Not", - "GE", - "LE", - "AtomicConcept", - "AtomicRole", - "Individual", - "Id", - "Double", - "Integer", - "String", - }; -} Deleted: trunk/src/dl-learner/org/dllearner/parser/JJTConfParserState.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/JJTConfParserState.java 2007-10-02 17:42:58 UTC (rev 162) +++ trunk/src/dl-learner/org/dllearner/parser/JJTConfParserState.java 2007-10-03 07:41:53 UTC (rev 163) @@ -1,123 +0,0 @@ -/* Generated By:JJTree: Do not edit this line. ./JJTConfParserState.java */ - -package org.dllearner.parser; - -@SuppressWarnings("all") class JJTConfParserState { - private java.util.Stack nodes; - private java.util.Stack marks; - - private int sp; // number of nodes on stack - private int mk; // current mark - private boolean node_created; - - JJTConfParserState() { - nodes = new java.util.Stack(); - marks = new java.util.Stack(); - sp = 0; - mk = 0; - } - - /* Determines whether the current node was actually closed and - pushed. This should only be called in the final user action of a - node scope. */ - boolean nodeCreated() { - return node_created; - } - - /* Call this to reinitialize the node stack. It is called - automatically by the parser's ReInit() method. */ - void reset() { - nodes.removeAllElements(); - marks.removeAllElements(); - sp = 0; - mk = 0; - } - - /* Returns the root node of the AST. It only makes sense to call - this after a successful parse. */ - Node rootNode() { - return (Node)nodes.elementAt(0); - } - - /* Pushes a node on to the stack. */ - void pushNode(Node n) { - nodes.push(n); - ++sp; - } - - /* Returns the node on the top of the stack, and remove it from the - stack. */ - Node popNode() { - if (--sp < mk) { - mk = ((Integer)marks.pop()).intValue(); - } - return (Node)nodes.pop(); - } - - /* Returns the node currently on the top of the stack. */ - Node peekNode() { - return (Node)nodes.peek(); - } - - /* Returns the number of children on the stack in the current node - scope. */ - int nodeArity() { - return sp - mk; - } - - - void clearNodeScope(Node n) { - while (sp > mk) { - popNode(); - } - mk = ((Integer)marks.pop()).intValue(); - } - - - void openNodeScope(Node n) { - marks.push(new Integer(mk)); - mk = sp; - n.jjtOpen(); - } - - - /* A definite node is constructed from a specified number of - children. That number of nodes are popped from the stack and - made the children of the definite node. Then the definite node - is pushed on to the stack. */ - void closeNodeScope(Node n, int num) { - mk = ((Integer)marks.pop()).intValue(); - while (num-- > 0) { - Node c = popNode(); - c.jjtSetParent(n); - n.jjtAddChild(c, num); - } - n.jjtClose(); - pushNode(n); - node_created = true; - } - - - /* A conditional node is constructed if its condition is true. All - the nodes that have been pushed since the node was opened are - made children of the conditional node, which is then pushed - on to the stack. If the condition is false the node is not - constructed and they are left on the stack. */ - void closeNodeScope(Node n, boolean condition) { - if (condition) { - int a = nodeArity(); - mk = ((Integer)marks.pop()).intValue(); - while (a-- > 0) { - Node c = popNode(); - c.jjtSetParent(n); - n.jjtAddChild(c, a); - } - n.jjtClose(); - pushNode(n); - node_created = true; - } else { - mk = ((Integer)marks.pop()).intValue(); - node_created = false; - } - } -} Deleted: trunk/src/dl-learner/org/dllearner/parser/JJTKBParserState.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/JJTKBParserState.java 2007-10-02 17:42:58 UTC (rev 162) +++ trunk/src/dl-learner/org/dllearner/parser/JJTKBParserState.java 2007-10-03 07:41:53 UTC (rev 163) @@ -1,123 +0,0 @@ -/* Generated By:JJTree: Do not edit this line. ./JJTKBParserState.java */ - -package org.dllearner.parser; - -@SuppressWarnings("all") class JJTKBParserState { - private java.util.Stack<Node> nodes; - private java.util.Stack<Integer> marks; - - private int sp; // number of nodes on stack - private int mk; // current mark - private boolean node_created; - - JJTKBParserState() { - nodes = new java.util.Stack<Node>(); - marks = new java.util.Stack<Integer>(); - sp = 0; - mk = 0; - } - - /* Determines whether the current node was actually closed and - pushed. This should only be called in the final user action of a - node scope. */ - boolean nodeCreated() { - return node_created; - } - - /* Call this to reinitialize the node stack. It is called - automatically by the parser's ReInit() method. */ - void reset() { - nodes.removeAllElements(); - marks.removeAllElements(); - sp = 0; - mk = 0; - } - - /* Returns the root node of the AST. It only makes sense to call - this after a successful parse. */ - Node rootNode() { - return nodes.elementAt(0); - } - - /* Pushes a node on to the stack. */ - void pushNode(Node n) { - nodes.push(n); - ++sp; - } - - /* Returns the node on the top of the stack, and remove it from the - stack. */ - Node popNode() { - if (--sp < mk) { - mk = marks.pop(); - } - return nodes.pop(); - } - - /* Returns the node currently on the top of the stack. */ - Node peekNode() { - return nodes.peek(); - } - - /* Returns the number of children on the stack in the current node - scope. */ - int nodeArity() { - return sp - mk; - } - - - void clearNodeScope(Node n) { - while (sp > mk) { - popNode(); - } - mk = marks.pop(); - } - - - void openNodeScope(Node n) { - marks.push(mk); - mk = sp; - n.jjtOpen(); - } - - - /* A definite node is constructed from a specified number of - children. That number of nodes are popped from the stack and - made the children of the definite node. Then the definite node - is pushed on to the stack. */ - void closeNodeScope(Node n, int num) { - mk = marks.pop(); - while (num-- > 0) { - Node c = popNode(); - c.jjtSetParent(n); - n.jjtAddChild(c, num); - } - n.jjtClose(); - pushNode(n); - node_created = true; - } - - - /* A conditional node is constructed if its condition is true. All - the nodes that have been pushed since the node was opened are - made children of the conditional node, which is then pushed - on to the stack. If the condition is false the node is not - constructed and they are left on the stack. */ - void closeNodeScope(Node n, boolean condition) { - if (condition) { - int a = nodeArity(); - mk = marks.pop(); - while (a-- > 0) { - Node c = popNode(); - c.jjtSetParent(n); - n.jjtAddChild(c, a); - } - n.jjtClose(); - pushNode(n); - node_created = true; - } else { - mk = marks.pop(); - node_created = false; - } - } -} Modified: trunk/src/dl-learner/org/dllearner/parser/KBParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2007-10-02 17:42:58 UTC (rev 162) +++ trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2007-10-03 07:41:53 UTC (rev 163) @@ -1,4 +1,4 @@ -/* Generated By:JJTree&JavaCC: Do not edit this line. KBParser.java */ +/* Generated By:JavaCC: Do not edit this line. KBParser.java */ package org.dllearner.parser; import org.dllearner.core.dl.*; @@ -7,8 +7,8 @@ import java.io.FileNotFoundException; import java.io.StringReader; -public @SuppressWarnings("all") class KBParser/*@bgen(jjtree)*/implements KBParserTreeConstants, KBParserConstants {/*@bgen(jjtree)*/ - protected JJTKBParserState jjtree = new JJTKBParserState(); +public @SuppressWarnings("all") class KBParser implements KBParserConstants { + public static final String internalNamespace = "http://localhost/foo#"; // method to give all internal stuff an URI (not necessary for DLs, but for OWL ontologies @@ -31,923 +31,421 @@ } final public KB KB() throws ParseException { - /*@bgen(jjtree) KB */ - SimpleNode jjtn000 = new SimpleNode(JJTKB); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);ConceptAssertion conceptAssertion; + ConceptAssertion conceptAssertion; RoleAssertion roleAssertion; RBoxAxiom rBoxAxiom; Equality equality; Inclusion inclusion; KB kb = new KB(); - try { - label_1: - while (true) { + label_1: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ID: + case TOP: + case BOTTOM: + case EXISTS: + case ALL: + case NOT: + case GE: + case LE: + case STRING: + case 22: + case 28: + case 29: + case 30: + case 31: + case 32: + ; + break; + default: + jj_la1[0] = jj_gen; + break label_1; + } + if (jj_2_1(2147483647)) { + conceptAssertion = ABoxConcept(); + kb.addABoxAxiom(conceptAssertion); + } else if (jj_2_2(2147483647)) { + roleAssertion = ABoxRole(); + kb.addABoxAxiom(roleAssertion); + } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ID: - case TOP: - case BOTTOM: - case EXISTS: - case ALL: - case NOT: - case GE: - case LE: - case STRING: - case 22: case 28: + rBoxAxiom = Transitive(); + kb.addRBoxAxiom(rBoxAxiom); + break; case 29: + rBoxAxiom = Functional(); + kb.addRBoxAxiom(rBoxAxiom); + break; case 30: + rBoxAxiom = Symmetric(); + kb.addRBoxAxiom(rBoxAxiom); + break; case 31: + rBoxAxiom = Inverse(); + kb.addRBoxAxiom(rBoxAxiom); + break; case 32: - ; + rBoxAxiom = Subrole(); + kb.addRBoxAxiom(rBoxAxiom); break; default: - jj_la1[0] = jj_gen; - break label_1; - } - if (jj_2_1(2147483647)) { - conceptAssertion = ABoxConcept(); - kb.addABoxAxiom(conceptAssertion); - } else if (jj_2_2(2147483647)) { - roleAssertion = ABoxRole(); - kb.addABoxAxiom(roleAssertion); - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 28: - rBoxAxiom = Transitive(); - kb.addRBoxAxiom(rBoxAxiom); - break; - case 29: - rBoxAxiom = Functional(); - kb.addRBoxAxiom(rBoxAxiom); - break; - case 30: - rBoxAxiom = Symmetric(); - kb.addRBoxAxiom(rBoxAxiom); - break; - case 31: - rBoxAxiom = Inverse(); - kb.addRBoxAxiom(rBoxAxiom); - break; - case 32: - rBoxAxiom = Subrole(); - kb.addRBoxAxiom(rBoxAxiom); - break; - default: - jj_la1[1] = jj_gen; - if (jj_2_3(2147483647)) { - equality = TBoxEquiv(); + jj_la1[1] = jj_gen; + if (jj_2_3(2147483647)) { + equality = TBoxEquiv(); kb.addTBoxAxiom(equality); - } else if (jj_2_4(2147483647)) { - inclusion = TBoxSub(); + } else if (jj_2_4(2147483647)) { + inclusion = TBoxSub(); kb.addTBoxAxiom(inclusion); - } else { - jj_consume_token(-1); - throw new ParseException(); - } + } else { + jj_consume_token(-1); + throw new ParseException(); } } } - jj_consume_token(0); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; - {if (true) return kb;} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } + jj_consume_token(0); + {if (true) return kb;} throw new Error("Missing return statement in function"); } final public ConceptAssertion ABoxConcept() throws ParseException { - /*@bgen(jjtree) ABoxConcept */ - SimpleNode jjtn000 = new SimpleNode(JJTABOXCONCEPT); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Concept c; Individual i; - try { - c = Concept(); - jj_consume_token(22); - i = Individual(); - jj_consume_token(23); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + Concept c; Individual i; + c = Concept(); + jj_consume_token(22); + i = Individual(); + jj_consume_token(23); + jj_consume_token(COMMAND_END); {if (true) return new ConceptAssertion(c,i);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public RoleAssertion ABoxRole() throws ParseException { - /*@bgen(jjtree) ABoxRole */ - SimpleNode jjtn000 = new SimpleNode(JJTABOXROLE); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);boolean isNegated=false; + boolean isNegated=false; AtomicRole ar; Individual i1,i2; - try { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case NOT: - Not(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case NOT: + Not(); isNegated=true; - break; - default: - jj_la1[2] = jj_gen; - ; - } - ar = AtomicRole(); - jj_consume_token(22); - i1 = Individual(); - jj_consume_token(24); - i2 = Individual(); - jj_consume_token(23); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + break; + default: + jj_la1[2] = jj_gen; + ; + } + ar = AtomicRole(); + jj_consume_token(22); + i1 = Individual(); + jj_consume_token(24); + i2 = Individual(); + jj_consume_token(23); + jj_consume_token(COMMAND_END); if(isNegated) {if (true) throw new Error("negated role assertions not supported yet");} else {if (true) return new RoleAssertion(ar,i1,i2);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public TransitiveRoleAxiom Transitive() throws ParseException { - /*@bgen(jjtree) Transitive */ - SimpleNode jjtn000 = new SimpleNode(JJTTRANSITIVE); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);AtomicRole ar; - try { - jj_consume_token(28); - jj_consume_token(22); - ar = AtomicRole(); - jj_consume_token(23); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + AtomicRole ar; + jj_consume_token(28); + jj_consume_token(22); + ar = AtomicRole(); + jj_consume_token(23); + jj_consume_token(COMMAND_END); {if (true) return new TransitiveRoleAxiom(ar);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public FunctionalRoleAxiom Functional() throws ParseException { - /*@bgen(jjtree) Functional */ - SimpleNode jjtn000 = new SimpleNode(JJTFUNCTIONAL); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);AtomicRole ar; - try { - jj_consume_token(29); - jj_consume_token(22); - ar = AtomicRole(); - jj_consume_token(23); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + AtomicRole ar; + jj_consume_token(29); + jj_consume_token(22); + ar = AtomicRole(); + jj_consume_token(23); + jj_consume_token(COMMAND_END); {if (true) return new FunctionalRoleAxiom(ar);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public SymmetricRoleAxiom Symmetric() throws ParseException { - /*@bgen(jjtree) Symmetric */ - SimpleNode jjtn000 = new SimpleNode(JJTSYMMETRIC); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);AtomicRole ar; - try { - jj_consume_token(30); - jj_consume_token(22); - ar = AtomicRole(); - jj_consume_token(23); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + AtomicRole ar; + jj_consume_token(30); + jj_consume_token(22); + ar = AtomicRole(); + jj_consume_token(23); + jj_consume_token(COMMAND_END); {if (true) return new SymmetricRoleAxiom(ar);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public InverseRoleAxiom Inverse() throws ParseException { - /*@bgen(jjtree) Inverse */ - SimpleNode jjtn000 = new SimpleNode(JJTINVERSE); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);AtomicRole ar1,ar2; - try { - jj_consume_token(31); - jj_consume_token(22); - ar1 = AtomicRole(); - jj_consume_token(24); - ar2 = AtomicRole(); - jj_consume_token(23); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + AtomicRole ar1,ar2; + jj_consume_token(31); + jj_consume_token(22); + ar1 = AtomicRole(); + jj_consume_token(24); + ar2 = AtomicRole(); + jj_consume_token(23); + jj_consume_token(COMMAND_END); {if (true) return new InverseRoleAxiom(ar1,ar2);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public SubRoleAxiom Subrole() throws ParseException { - /*@bgen(jjtree) Subrole */ - SimpleNode jjtn000 = new SimpleNode(JJTSUBROLE); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);AtomicRole ar1,ar2; - try { - jj_consume_token(32); - jj_consume_token(22); - ar1 = AtomicRole(); - jj_consume_token(24); - ar2 = AtomicRole(); - jj_consume_token(23); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + AtomicRole ar1,ar2; + jj_consume_token(32); + jj_consume_token(22); + ar1 = AtomicRole(); + jj_consume_token(24); + ar2 = AtomicRole(); + jj_consume_token(23); + jj_consume_token(COMMAND_END); {if (true) return new SubRoleAxiom(ar1,ar2);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public Equality TBoxEquiv() throws ParseException { - /*@bgen(jjtree) TBoxEquiv */ - SimpleNode jjtn000 = new SimpleNode(JJTTBOXEQUIV); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Concept c1,c2; - try { - c1 = Concept(); - jj_consume_token(25); - c2 = Concept(); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + Concept c1,c2; + c1 = Concept(); + jj_consume_token(25); + c2 = Concept(); + jj_consume_token(COMMAND_END); {if (true) return new Equality(c1,c2);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } throw new Error("Missing return statement in function"); } final public Inclusion TBoxSub() throws ParseException { - /*@bgen(jjtree) TBoxSub */ - SimpleNode jjtn000 = new SimpleNode(JJTTBOXSUB); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Concept c1,c2; - try { - c1 = Concept(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case 26: - jj_consume_token(26); - break; - case 27: - jj_consume_token(27); - break; - case 33: - jj_consume_token(33); - break; - default: - jj_la1[3] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - c2 = Concept(); - jj_consume_token(COMMAND_END); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; - {if (true) return new Inclusion(c1,c2);} - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } + Concept c1,c2; + c1 = Concept(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case 26: + jj_consume_token(26); + break; + case 27: + jj_consume_token(27); + break; + case 33: + jj_consume_token(33); + break; + default: + jj_la1[3] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); } + c2 = Concept(); + jj_consume_token(COMMAND_END); + {if (true) return new Inclusion(c1,c2);} throw new Error("Missing return statement in function"); } final public Concept Concept() throws ParseException { - /*@bgen(jjtree) Concept */ - SimpleNode jjtn000 = new SimpleNode(JJTCONCEPT); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000);Concept c,c1,c2; + Concept c,c1,c2; AtomicConcept ac; AtomicRole ar; String s; int i; - try { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case TOP: - Top(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case TOP: + Top(); {if (true) return new Top();} - break; - case BOTTOM: - Bottom(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + break; + case BOTTOM: + Bottom(); {if (true) return new Bottom();} - break; - case ID: - case STRING: - ac = AtomicConcept(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + break; + case ID: + case STRING: + ac = AtomicConcept(); {if (true) return ac;} - break; - default: - jj_la1[4] = jj_gen; - if (jj_2_5(2147483647)) { - jj_consume_token(22); - c1 = Concept(); - And(); - c2 = Concept(); - jj_consume_token(23); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + break; + default: + jj_la1[4] = jj_gen; + if (jj_2_5(2147483647)) { + jj_consume_token(22); + c1 = Concept(); + And(); + c2 = Concept(); + jj_consume_token(23); {if (true) return new Conjunction(c1,c2);} - } else if (jj_2_6(2147483647)) { - jj_consume_token(22); - c1 = Concept(); - Or(); - c2 = Concept(); - jj_consume_token(23); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + } else if (jj_2_6(2147483647)) { + jj_consume_token(22); + c1 = Concept(); + Or(); + c2 = Concept(); + jj_consume_token(23); {if (true) return new Disjunction(c1,c2);} - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case EXISTS: - Exists(); - ar = AtomicRole(); - jj_consume_token(COMMAND_END); - c = Concept(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case EXISTS: + Exists(); + ar = AtomicRole(); + jj_consume_token(COMMAND_END); + c = Concept(); {if (true) return new Exists(ar,c);} - break; - case ALL: - All(); - ar = AtomicRole(); - jj_consume_token(COMMAND_END); - c = Concept(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + break; + case ALL: + All(); + ar = AtomicRole(); + jj_consume_token(COMMAND_END); + c = Concept(); {if (true) return new All(ar,c);} - break; - case NOT: - Not(); - c = Concept(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + break; + case NOT: + Not(); + c = Concept(); {if (true) return new Negation(c);} - break; - case GE: - GE(); - i = Integer(); - ar = AtomicRole(); - jj_consume_token(COMMAND_END); - c = Concept(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + break; + case GE: + GE(); + i = Integer(); + ar = AtomicRole(); + jj_consume_token(COMMAND_END); + c = Concept(); {if (true) return new GreaterEqual(i,ar,c);} - break; - case LE: - LE(); - i = Integer(); - ar = AtomicRole(); - jj_consume_token(COMMAND_END); - c = Concept(); - jjtree.closeNodeScope(jjtn000, true); - jjtc000 = false; + break; + case LE: + LE(); + i = Integer(); + ar = AtomicRole(); + jj_consume_token(COMMAND_END); + c = Concept(); {if (true) return new LessEqual(i,ar,c);} - break; - default: - jj_la1[5] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } + break; + default: + jj_la1[5] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); } } - } catch (Throwable jjte000) { - if (jjtc000) { - jjtree.clearNodeScope(jjtn000); - jjtc000 = false; - } else { - jjtree.popNode(); - } - if (jjte000 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte000;} - } - if (jjte000 instanceof ParseException) { - {if (true) throw (ParseException)jjte000;} - } - {if (true) throw (Error)jjte000;} - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } } throw new Error("Missing return statement in function"); } final public void Or() throws ParseException { - /*@bgen(jjtree) Or */ - SimpleNode jjtn000 = new SimpleNode(JJTOR); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000); - try { - jj_consume_token(OR); - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } + jj_consume_token(OR); } final public void And() throws ParseException { - /*@bgen(jjtree) And */ - SimpleNode jjtn000 = new SimpleNode(JJTAND); - boolean jjtc000 = true; - jjtree.openNodeScope(jjtn000); - try { - jj_consume_token(AND); - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } + jj_consume_token(AND); } final public void Top() throws ParseException { - /*@bgen(jjtree) Top */ - SimpleNode jjtn000 = new SimpleNo... [truncated message content] |