Revision: 19655 http://sourceforge.net/p/gate/code/19655 Author: markagreenwood Date: 2016-10-09 16:41:05 +0000 (Sun, 09 Oct 2016) Log Message: ----------- updated the plugin so that it now builds the jape parser rather than building it elsewhere and copying the java files around which was simply asking for trouble
Modified Paths: -------------- gate/branches/sawdust2/plugins/ANNIE/.classpath gate/branches/sawdust2/plugins/ANNIE/pom.xml gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpsl.jj Removed Paths: ------------- gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpsl.java gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslConstants.java gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslPlain.html gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslTokenManager.java gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseException.java gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/SimpleCharStream.java gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/Token.java gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/TokenMgrError.java Modified: gate/branches/sawdust2/plugins/ANNIE/.classpath =================================================================== --- gate/branches/sawdust2/plugins/ANNIE/.classpath 2016-10-09 16:14:13 UTC (rev 19654) +++ gate/branches/sawdust2/plugins/ANNIE/.classpath 2016-10-09 16:41:05 UTC (rev 19655) @@ -6,6 +6,7 @@ <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> + <classpathentry kind="src" path="target/generated-sources/javacc"/> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <attributes> <attribute name="maven.pomderived" value="true"/> Modified: gate/branches/sawdust2/plugins/ANNIE/pom.xml =================================================================== --- gate/branches/sawdust2/plugins/ANNIE/pom.xml 2016-10-09 16:14:13 UTC (rev 19654) +++ gate/branches/sawdust2/plugins/ANNIE/pom.xml 2016-10-09 16:41:05 UTC (rev 19655) @@ -52,4 +52,31 @@ </dependencies> + <build> + <plugins> + <plugin> + <groupId>com.helger.maven</groupId> + <artifactId>ph-javacc-maven-plugin</artifactId> + <version>2.8.1</version> + <executions> + <execution> + <id>jape</id> + <phase>generate-sources</phase> + <goals> + <goal>javacc</goal> + </goals> + <configuration> + <jdkVersion>1.8</jdkVersion> + <javadocFriendlyComments>true</javadocFriendlyComments> + <packageName>gate.jape.parser</packageName> + <sourceDirectory>src/main/java/gate/jape/parser</sourceDirectory> + <!-- <outputDirectory>${project.build.directory}/generated-sources/javacc1</outputDirectory>--> + </configuration> + </execution> + </executions> + + </plugin> + </plugins> + </build> + </project> Deleted: gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpsl.java =================================================================== --- gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpsl.java 2016-10-09 16:14:13 UTC (rev 19654) +++ gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpsl.java 2016-10-09 16:41:05 UTC (rev 19655) @@ -1,2369 +0,0 @@ -/* ParseCpsl.java */ -/* Generated By:JavaCC: Do not edit this line. ParseCpsl.java */ -package gate.jape.parser; - -import java.io.*; -import java.net.*; -import java.util.*; -import java.util.regex.*; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; - -import gate.Factory; -import gate.util.*; -import gate.jape.*; -import gate.jape.constraint.*; -import gate.event.*; - -import org.apache.log4j.Logger; - - -/** - * A parser for the CPSL language. Generated using JavaCC. - * @author Hamish Cunningham - */ -public class ParseCpsl implements JapeConstants, ParseCpslConstants { - - private static final long serialVersionUID = -2754817550046808372L; - - private static final Logger log = Logger.getLogger(ParseCpsl.class); - - /** Construct from a URL and an encoding - */ - public ParseCpsl(URL url, String encoding) throws IOException { - this(url, encoding, new HashMap<String,Object>()); - } - - /** Construct from a URL and an encoding - */ - public ParseCpsl(URL url, String encoding, Map<String,Object> existingMacros) throws IOException { - this(url, encoding, existingMacros, new HashMap<String,Pair>()); - } - - public ParseCpsl(URL url, String encoding, Map<String,Object> existingMacros, Map<String,Pair> existingTemplates) throws IOException { - this(new BomStrippingInputStreamReader(url.openStream(), encoding), - existingMacros, existingTemplates); - baseURL = url; - this.encoding = encoding; - } - - public ParseCpsl(java.io.Reader stream, Map<String,Object> existingMacros) { - this(stream, existingMacros, new HashMap<String,Pair>()); - } - - public ParseCpsl(java.io.Reader stream, Map<String,Object> existingMacros, Map<String,Pair> existingTemplates) { - this(stream); - macrosMap = existingMacros; - templatesMap = existingTemplates; - } - - //StatusReporter Implementation - public void addStatusListener(StatusListener listener){ - myStatusListeners.add(listener); - } - public void removeStatusListener(StatusListener listener){ - myStatusListeners.remove(listener); - } - protected void fireStatusChangedEvent(String text){ - Iterator<StatusListener> listenersIter = myStatusListeners.iterator(); - while(listenersIter.hasNext()) - listenersIter.next().statusChanged(text); - } - - protected SinglePhaseTransducer createSinglePhaseTransducer(String name){ - try { - Constructor<? extends SinglePhaseTransducer> c = sptClass.getConstructor - (String.class); - return c.newInstance(name); - } catch (NoSuchMethodException e) { // Shouldn't happen - throw new RuntimeException(e); - } catch (IllegalArgumentException e) { // Shouldn't happen - throw new RuntimeException(e); - } catch (InstantiationException e) { // Shouldn't happen - throw new RuntimeException(e); - } catch (IllegalAccessException e) { // Shouldn't happen - throw new RuntimeException(e); - } catch (InvocationTargetException e) { // Happens if the constructor throws an exception - throw new RuntimeException(e); - } - } - - protected ParseCpsl spawn(URL sptURL) throws IOException{ - ParseCpsl newParser = new ParseCpsl(sptURL, encoding, macrosMap, templatesMap); - newParser.setSptClass(this.sptClass); - return newParser; - } - - protected void finishSPT(SinglePhaseTransducer t) throws ParseException { - if(ruleNumber == 0) - throw(new ParseException("no rules defined in transducer " + t.getName())); - t.setBaseURL(baseURL); - } - - protected void finishBPE(BasicPatternElement bpe) { - } - - /** - * Attempt to parse a multi phase transducer from the current file. This - * method ensures that the JAPE file reader is properly closed when the - * method completes, whether it completes successfully or throws an - * exception. - */ - public MultiPhaseTransducer MultiPhaseTransducer() throws ParseException { - try { - return _MultiPhaseTransducer(); - } - finally { - // this is a bit nasty but I couldn't find a better way to get at the - // underlying Reader - if(jj_input_stream.inputStream != null) { - try { - jj_input_stream.inputStream.close(); - } - catch(IOException e) { - log.warn("Couldn't close input stream while parsing " + baseURL, e); - } - } - } - } - - protected String toJavaIdentifier(String japeIdentifier) { - return japeIdentifier.replace("-", "_"); - } - - /** - * Normalise for quoted and unquoted strings - if the token is a string, - * strip the quotes off its image, otherwise return the image as-is. - */ - protected String stringValueOf(Token tok) { - if(tok.kind == string) { - // quoted string - strip the quotes - return tok.image.substring(1, tok.image.length() - 1); - } else { - return tok.image; - } - } - - /** - * Append the given string to the end of the given buffer as a Java string - * literal. If <code>str</code> is <code>null</code>, we append the four - * characters n, u, l, l. Otherwise, we append the contents of str surrounded - * by double quotes, except that characters in str are escaped as necessary - * to be a legal Java string literal: backspace, formfeed, tab, newline and - * return are replaced by their escape sequences \b, \f, etc.; single and double - * quote and backslash are preceded by an extra backslash; other non-ASCII - * and non-printing characters are rendered as Unicode escapes (backslash-u - * followed by four hex digits). - */ - protected void appendJavaStringLiteral(StringBuffer buf, String str) { - if(str == null) { - buf.append("null"); - } - else { - Formatter formatter = null; - buf.append("\u005c""); - for(int i = 0; i < str.length(); i++) { - char c = str.charAt(i); - switch(c) { - case '\u005cb': - buf.append("\u005c\u005cb"); - break; - case '\u005cf': - buf.append("\u005c\u005cf"); - break; - case '\u005cn': - buf.append("\u005c\u005cn"); - break; - case '\u005cr': - buf.append("\u005c\u005cr"); - break; - case '\u005ct': - buf.append("\u005c\u005ct"); - break; - case '\u005c"': - buf.append("\u005c\u005c\u005c""); - break; - case '\u005c'': - buf.append("\u005c\u005c\u005c'"); - break; - case '\u005c\u005c': - buf.append("\u005c\u005c\u005c\u005c"); - break; - - default: - if(c < 32 || c > 127) { - if(formatter == null) formatter = new Formatter(buf); - formatter.format("\u005c\u005cu%04X", Integer.valueOf(c)); - } - else { - buf.append(c); - } - break; - } - } - buf.append("\u005c""); - } - } - - protected void appendAnnotationAdd(StringBuffer blockBuffer, String newAnnotType, String annotSetName) - { - String nl = Strings.getNl(); - blockBuffer.append(" if(outputAS == inputAS) { // use nodes directly" + nl); - blockBuffer.append(" outputAS.add(" + nl); - blockBuffer.append(" " + annotSetName + ".firstNode(), "); - blockBuffer.append(annotSetName + ".lastNode(), " + nl); - blockBuffer.append(" "); - appendJavaStringLiteral(blockBuffer, newAnnotType); - blockBuffer.append(", features" + nl); - blockBuffer.append(" );" + nl); - blockBuffer.append(" }" + nl); - blockBuffer.append(" else { // use offsets" + nl); - blockBuffer.append(" try {" + nl); - blockBuffer.append(" outputAS.add(" + nl); - blockBuffer.append(" " + annotSetName + ".firstNode().getOffset(), "); - blockBuffer.append(annotSetName + ".lastNode().getOffset(), " + nl); - blockBuffer.append(" "); - appendJavaStringLiteral(blockBuffer, newAnnotType); - blockBuffer.append(", features" + nl); - blockBuffer.append(" );" + nl); - blockBuffer.append(" }" + nl); - blockBuffer.append(" catch(gate.util.InvalidOffsetException ioe) {" + nl); - blockBuffer.append(" throw new gate.util.LuckyException(\u005c"Invalid offset exception generated \u005c" +" + nl); - blockBuffer.append(" \u005c"from offsets taken from same document!\u005c");" + nl); - blockBuffer.append(" }" + nl); - blockBuffer.append(" }" + nl); - blockBuffer.append(" // end of RHS assignment block"); - } - - /** - * Takes a string containing ${key} placeholders and substitutes - * in the corresponding values from the given map. If there is - * no value in the map for a particular placeholder it is left - * un-resolved, i.e. given a template of "${key1}/${key2}" and - * a values map of just [key1: "hello"], this method would return - * "hello/${key2}". - */ - protected Pair substituteTemplate(Token templateNameTok, - Map<String, Object> values) throws ParseException { - Pair template = templatesMap.get(templateNameTok.image); - if(template == null) { - throw new ParseException(errorMsgPrefix(templateNameTok) + - "unknown template name " + templateNameTok.image); - } - Pair returnVal = null; - Set<String> unusedParams = new HashSet<String>(values.keySet()); - if(((Integer)template.first).intValue() == string) { - log.debug("Substituting template " + templateNameTok.image + " with map " - + values + ". Template is " + template); - StringBuffer buf = new StringBuffer(); - Matcher mat = Pattern.compile("\u005c\u005c$\u005c\u005c{([^\u005c\u005c}]+)\u005c\u005c}") - .matcher((String)template.second); - while(mat.find()) { - String key = mat.group(1); - if(values.containsKey(key)) { - mat.appendReplacement(buf, - Matcher.quoteReplacement(String.valueOf(values.get(key)))); - unusedParams.remove(key); - } - else { - mat.appendReplacement(buf, "\u005c\u005c${"); - buf.append(key); - buf.append("}"); - } - } - mat.appendTail(buf); - - returnVal = new Pair(); - returnVal.first = Integer.valueOf(string); - returnVal.second = buf.toString(); - log.debug("Template substitution produced " + returnVal.second); - } - else { - returnVal = template; - } - - // check that there were no invalid parameters - if(!unusedParams.isEmpty()) { - throw new ParseException(errorMsgPrefix(templateNameTok) + - "invalid parameters " + unusedParams + - " for template " + templateNameTok.image); - } - else { - return returnVal; - } - } - - public void setBaseURL (URL newURL) { - baseURL = newURL; - } - - public void setEncoding (String newEncoding) { - encoding = newEncoding; - } - - public void setSptClass(Class<? extends SinglePhaseTransducer> sptClass) { - this.sptClass = sptClass; - } - - private String errorMsgPrefix(Token t) { - return ((baseURL != null) ? baseURL.toExternalForm() : "(No URL)")+ - ( (t == null) ? " " : - ":"+t.beginLine+":"+t.beginColumn+": "); - } - - private transient List<StatusListener> myStatusListeners = new LinkedList<StatusListener>(); - - /** Position of the current rule */ - private int ruleNumber; - - /** A list of all the bindings we made this time, for checking - * the RHS during parsing. - */ - private Set<String> bindingNameSet = null; - - /** A table of macro definitions. */ - protected Map<String,Object> macrosMap; - - /** - * A table of template definitions. Keys are template names, - * values are Pairs of token kind and value, as returned by - * AttrVal. - */ - protected Map<String,Pair> templatesMap; - - protected URL baseURL; - protected String encoding; - - protected Class<? extends SinglePhaseTransducer> sptClass = - SinglePhaseTransducer.class; - - protected SinglePhaseTransducer curSPT; - -////////////// -// the grammar -////////////// - final public -MultiPhaseTransducer _MultiPhaseTransducer() throws ParseException {// macrosMap = new HashMap(); - SinglePhaseTransducer s = null; - MultiPhaseTransducer m = new MultiPhaseTransducer(); - m.setBaseURL(baseURL); - Token mptNameTok = null; - Token phaseNameTok = null; - String javaimportblock = null; - String controllerstartedblock = null; - String controllerfinishedblock = null; - String controllerabortedblock = null; - boolean haveControllerStartedBlock = false; - boolean haveControllerFinishedBlock = false; - boolean haveControllerAbortedBlock = false; - switch (jj_nt.kind) { - case multiphase:{ - jj_consume_token(multiphase); - mptNameTok = jj_consume_token(ident); -m.setName(mptNameTok.image); - break; - } - default: - jj_la1[0] = jj_gen; - ; - } - switch (jj_nt.kind) { - case javaimport: - case controllerstarted: - case controllerfinished: - case controlleraborted: - case phase:{ - javaimportblock = JavaImportBlock(); - label_1: - while (true) { - switch (jj_nt.kind) { - case controllerstarted: - case controllerfinished: - case controlleraborted:{ - ; - break; - } - default: - jj_la1[1] = jj_gen; - break label_1; - } - switch (jj_nt.kind) { - case controllerstarted:{ - controllerstartedblock = ControllerStartedBlock(); -if(haveControllerStartedBlock) - {if (true) throw new ParseException("Only one ControllerStarted block allowed");} - else - haveControllerStartedBlock = true; - break; - } - case controllerfinished:{ - controllerfinishedblock = ControllerFinishedBlock(); -if(haveControllerFinishedBlock) - {if (true) throw new ParseException("Only one ControllerFinished block allowed");} - else - haveControllerFinishedBlock = true; - break; - } - case controlleraborted:{ - controllerabortedblock = ControllerAbortedBlock(); -if(haveControllerAbortedBlock) - {if (true) throw new ParseException("Only one ControllerAborted block allowed");} - else - haveControllerAbortedBlock = true; - break; - } - default: - jj_la1[2] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - label_2: - while (true) { - try { - s = SinglePhaseTransducer(javaimportblock); -m.addPhase(s.getName(), s); - s.setBaseURL(baseURL); - s.setControllerEventBlocks(controllerstartedblock, - controllerfinishedblock,controllerabortedblock,javaimportblock); - // only the first SPT in a MPT file should define/execute the blocks - controllerstartedblock = null; - controllerfinishedblock = null; - controllerabortedblock = null; - } catch (Throwable e) { -// try to wrap the exception with info about what file/resource - // it occurred in. - {if (true) throw( - new ParseException("Cannot parse a phase in " + - baseURL + ": " + e.getMessage() - ));} - } - switch (jj_nt.kind) { - case phase:{ - ; - break; - } - default: - jj_la1[3] = jj_gen; - break label_2; - } - } - break; - } - case phases:{ - jj_consume_token(phases); - label_3: - while (true) { - phaseNameTok = jj_consume_token(path); -ParseCpsl parser = null; - - // check file exists - String sptPath = phaseNameTok.image + ".jape"; - URL sptURL = null; - try{ - sptURL = new URL(baseURL, sptPath); - }catch(MalformedURLException mue){ - {if (true) throw(new ParseException(errorMsgPrefix(phaseNameTok)+ - "Read error " + mue.toString()));} - } - - // sptURL can never be null at this point because the only way that could - // happen would be if an exception occurred above, but that would trigger - // the ParserException above - if(sptURL == null){ - {if (true) throw(new ParseException(errorMsgPrefix(phaseNameTok)+ - "Resource not found: base = " + baseURL.toString() + - " path = " + sptPath - ));} - } - - // construct a parser and parse it - fireStatusChangedEvent("Reading " + phaseNameTok.image + "..."); - try { - parser = spawn(sptURL); - } catch (IOException e) { - {if (true) throw( - new ParseException(errorMsgPrefix(phaseNameTok)+ - "Cannot open URL " + sptURL.toExternalForm() - ) - );} - } - - // adding the resultant spt to m - if(parser != null) { - List<Transducer> phases = parser.MultiPhaseTransducer().getPhases(); - - //s = parser.SinglePhaseTransducer(); - //if(s != null) - // m.addPhase(s.getName(), s); - - if(phases != null) { - for(int i=0; i < phases.size(); i++) { - m.addPhase( - phases.get(i).getName(), - phases.get(i) - ); - } - } - } - switch (jj_nt.kind) { - case path:{ - ; - break; - } - default: - jj_la1[4] = jj_gen; - break label_3; - } - } - break; - } - default: - jj_la1[5] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(0); -//move this out of here so the input file gets closed properly -// m.finish(); // swap the various JGL types for Java arrays - {if ("" != null) return m;} - throw new Error("Missing return statement in function"); - } - -// _MultiPhaseTransducer - final public - -SinglePhaseTransducer SinglePhaseTransducer(String javaimportblock) throws ParseException {ruleNumber = 0; - Token phaseNameTok = null; - String phaseName = null; - Token inputTok = null; - SinglePhaseTransducer t = null; - Rule newRule = null; - bindingNameSet = new HashSet<String>(); - Token optionNameTok = null; - Token optionValueTok = null; - jj_consume_token(phase); - phaseNameTok = jj_consume_token(ident); -phaseName = toJavaIdentifier(phaseNameTok.image); - t = createSinglePhaseTransducer(phaseName); curSPT = t; - label_4: - while (true) { - switch (jj_nt.kind) { - case input: - case option:{ - ; - break; - } - default: - jj_la1[6] = jj_gen; - break label_4; - } - switch (jj_nt.kind) { - case input:{ - jj_consume_token(input); - label_5: - while (true) { - switch (jj_nt.kind) { - case string: - case ident:{ - ; - break; - } - default: - jj_la1[7] = jj_gen; - break label_5; - } - switch (jj_nt.kind) { - case ident:{ - inputTok = jj_consume_token(ident); - break; - } - case string:{ - inputTok = jj_consume_token(string); - break; - } - default: - jj_la1[8] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -t.addInput(stringValueOf(inputTok)); - } - break; - } - case option:{ - jj_consume_token(option); - label_6: - while (true) { - switch (jj_nt.kind) { - case ident:{ - ; - break; - } - default: - jj_la1[9] = jj_gen; - break label_6; - } - optionNameTok = jj_consume_token(ident); - jj_consume_token(assign); - switch (jj_nt.kind) { - case ident:{ - optionValueTok = jj_consume_token(ident); - break; - } - case bool:{ - optionValueTok = jj_consume_token(bool); - break; - } - default: - jj_la1[10] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -t.setOption(optionNameTok.image, optionValueTok.image); - - // control - if(optionNameTok.image.equalsIgnoreCase("control")) { - if(optionValueTok.image.equalsIgnoreCase("appelt")) - t.setRuleApplicationStyle(APPELT_STYLE); - else if(optionValueTok.image.equalsIgnoreCase("first")) - t.setRuleApplicationStyle(FIRST_STYLE); - else if(optionValueTok.image.equalsIgnoreCase("brill")) - t.setRuleApplicationStyle(BRILL_STYLE); - else if(optionValueTok.image.equalsIgnoreCase("once")) - t.setRuleApplicationStyle(ONCE_STYLE); - else if(optionValueTok.image.equalsIgnoreCase("all")) - t.setRuleApplicationStyle(ALL_STYLE); - else - System.err.println(errorMsgPrefix(optionValueTok)+ - "ignoring unknown control strategy " + option + - " (should be brill, appelt, first, once or all)" - ); - } // control - else if(optionNameTok.image.equalsIgnoreCase("debug")) { - if(optionValueTok.image.equalsIgnoreCase("true") || - optionValueTok.image.equalsIgnoreCase("yes") || - optionValueTok.image.equalsIgnoreCase("y")) - t.setDebugMode(true); - else t.setDebugMode(false); - } - else if(optionNameTok.image.equalsIgnoreCase("matchGroup")) { - if(optionValueTok.image.equalsIgnoreCase("true") || - optionValueTok.image.equalsIgnoreCase("yes") || - optionValueTok.image.equalsIgnoreCase("y")) - t.setMatchGroupMode(true); - else t.setMatchGroupMode(false); - } - else if(optionNameTok.image.equalsIgnoreCase("negationGrouping")) { - if(optionValueTok.image.equalsIgnoreCase("false") || - optionValueTok.image.equalsIgnoreCase("no") || - optionValueTok.image.equalsIgnoreCase("n")) - t.setNegationCompatMode(true); - else t.setNegationCompatMode(false); - } - } - break; - } - default: - jj_la1[11] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - label_7: - while (true) { - switch (jj_nt.kind) { - case rule: - case macro: - case template:{ - ; - break; - } - default: - jj_la1[12] = jj_gen; - break label_7; - } - switch (jj_nt.kind) { - case rule:{ - newRule = Rule(phaseName,javaimportblock); -t.addRule(newRule); - break; - } - case macro:{ - MacroDef(); - break; - } - case template:{ - TemplateDef(); - break; - } - default: - jj_la1[13] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } -finishSPT(t); - {if ("" != null) return t;} - throw new Error("Missing return statement in function"); - } - -// SinglePhaseTransducer - -// if there is a block, set the javaimports to the java block specified, -// otherwise set it to the default block - final public String JavaImportBlock() throws ParseException {// default java imports - String defaultimportblock = - "import gate.*;\u005cn" + - "import java.io.*;\u005cn" + - "import java.util.*;\u005cn" + - "import gate.util.*;\u005cn" + - "import gate.jape.*;\u005cn" + - "import gate.creole.ontology.*;\u005cn"; - String importblock = null; - switch (jj_nt.kind) { - case javaimport:{ - jj_consume_token(javaimport); - jj_consume_token(leftBrace); - importblock = ConsumeBlock(); - break; - } - default: - jj_la1[14] = jj_gen; - ; - } -if(importblock != null) { - {if ("" != null) return defaultimportblock+importblock;} - } else { - {if ("" != null) return defaultimportblock;} - } - throw new Error("Missing return statement in function"); - } - - final public String ControllerStartedBlock() throws ParseException {String block = null; - jj_consume_token(controllerstarted); - jj_consume_token(leftBrace); - block = ConsumeBlock(); -{if ("" != null) return block;} - throw new Error("Missing return statement in function"); - } - - final public String ControllerFinishedBlock() throws ParseException {String block = null; - jj_consume_token(controllerfinished); - jj_consume_token(leftBrace); - block = ConsumeBlock(); -{if ("" != null) return block;} - throw new Error("Missing return statement in function"); - } - - final public String ControllerAbortedBlock() throws ParseException {String block = null; - jj_consume_token(controlleraborted); - jj_consume_token(leftBrace); - block = ConsumeBlock(); -{if ("" != null) return block;} - throw new Error("Missing return statement in function"); - } - - final public Rule Rule(String phaseName, String currentImports) throws ParseException {Token ruleNameTok = null; - String ruleName = null; - Token priorityTok = null; - int rulePriority = 0; - LeftHandSide lhs = null; - RightHandSide rhs = null; - Rule newRule = null; - // forget the labels we saw in the previous rule - bindingNameSet.clear(); - jj_consume_token(rule); - ruleNameTok = jj_consume_token(ident); -ruleName=toJavaIdentifier(ruleNameTok.image); - switch (jj_nt.kind) { - case priority:{ - jj_consume_token(priority); - priorityTok = jj_consume_token(integer); -try { rulePriority=Integer.parseInt(priorityTok.image); } - catch(NumberFormatException e) { - System.err.println(errorMsgPrefix(priorityTok)+ - "bad priority spec(" + priorityTok.image + - "), rule(" + ruleName + ") - treating as 0"); - rulePriority=0; - } - break; - } - default: - jj_la1[15] = jj_gen; - ; - } - lhs = LeftHandSide(); - jj_consume_token(72); - rhs = RightHandSide(phaseName, ruleName, lhs, currentImports); -try { - rhs.createActionClass(); - } catch(JapeException e) { - /*Debug.pr( - this, "ParseCpsl.Rule, FAILED rhs: " + rhs.getActionClassString() - );*/ - {if (true) throw new ParseException(errorMsgPrefix(null)+ - "couldn't create rule RHS: " + e.toString());} - } - /*Debug.pr(this, "ParseCpsl.Rule, done rhs: " + rhs.getActionClassString());*/ - newRule = new Rule(ruleName, ruleNumber, rulePriority, lhs, rhs); - // if there were "Input:" annotation types specified ... - if(curSPT.isInputRestricted()) { - // find all the different annotation types used in the - // LHS of the rule - HashSet<String> set = new HashSet<String>(); - lhs.getConstraintGroup().getContainedAnnotationTypes(set); - // and check if each of them is mentioned in the list - for (String type : set) { - if(!curSPT.hasInput(type)) { - System.err.println(errorMsgPrefix(null)+ - "Rule "+ruleNameTok.image+" contains unlisted annotation type " + type); - } - } - } - ruleNumber++; - {if ("" != null) return newRule;} - throw new Error("Missing return statement in function"); - } - -// Rule - final public - -void MacroDef() throws ParseException {Token macroNameTok = null; - Object body = null; - jj_consume_token(macro); - macroNameTok = jj_consume_token(ident); - if (jj_2_1(2)) { - // both blocks and PEs may start with "{" - body = PatternElement(); - } else { - switch (jj_nt.kind) { - case ident: - case colon: - case leftBrace: - case colonplus:{ - body = Action(false); - break; - } - default: - jj_la1[16] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } -macrosMap.put(macroNameTok.image, body); - } - -// MacroDef - final public -void TemplateDef() throws ParseException {Token templateNameTok = null; - Pair value = null; - jj_consume_token(template); - templateNameTok = jj_consume_token(ident); - jj_consume_token(assign); - value = AttrVal(); -templatesMap.put(templateNameTok.image, value); - } - -// TemplateDef - final public - -LeftHandSide LeftHandSide() throws ParseException {ConstraintGroup cg = new ConstraintGroup(); - ConstraintGroup(cg); -LeftHandSide lhs = new LeftHandSide(cg); - // pull out all bindings (including nested ones) and add them to the LHS - Iterator<ComplexPatternElement> boundCPEs = cg.getCPEs(); - while(boundCPEs.hasNext()) { - ComplexPatternElement cpe = boundCPEs.next(); - String bindingName = cpe.getBindingName(); - if(bindingName != null) { - try { - lhs.addBinding(bindingName, cpe, bindingNameSet); - } catch(JapeException e) { - System.err.println(errorMsgPrefix(null)+ - "duplicate binding name " + bindingName + - " - ignoring this binding! exception was: " + e.toString() - ); - } - - } - } - {if ("" != null) return lhs;} - throw new Error("Missing return statement in function"); - } - -// LeftHandSide - - -// we pass the lhs down so we can add bindings in CPEs, and the cg -// so we can add PEs and create disjunctions here - final public void ConstraintGroup(ConstraintGroup cg) throws ParseException {PatternElement pat = null; - label_8: - while (true) { - pat = PatternElement(); -cg.addPatternElement(pat); - switch (jj_nt.kind) { - case string: - case ident: - case leftBrace: - case leftBracket:{ - ; - break; - } - default: - jj_la1[17] = jj_gen; - break label_8; - } - } - label_9: - while (true) { - switch (jj_nt.kind) { - case bar:{ - ; - break; - } - default: - jj_la1[18] = jj_gen; - break label_9; - } - jj_consume_token(bar); -cg.createDisjunction(); - label_10: - while (true) { - pat = PatternElement(); -cg.addPatternElement(pat); - switch (jj_nt.kind) { - case string: - case ident: - case leftBrace: - case leftBracket:{ - ; - break; - } - default: - jj_la1[19] = jj_gen; - break label_10; - } - } - } - } - -// ConstraintGroup - final public - -PatternElement PatternElement() throws ParseException {PatternElement pat = null; - Token macroRefTok = null; - switch (jj_nt.kind) { - case ident:{ - macroRefTok = jj_consume_token(ident); -Object macro = macrosMap.get(macroRefTok.image); - if(macro == null) - {if (true) throw(new ParseException(errorMsgPrefix(macroRefTok)+ - "unknown macro name " + macroRefTok.image));} - else if(macro instanceof String[]) - {if (true) throw( - new ParseException(errorMsgPrefix(macroRefTok)+ - "macro " + macroRefTok.image + - " references an Action, not a PatternElement" - ) - );} - else if(! (macro instanceof PatternElement)) // this should never happen - {if (true) throw( - new ParseException(errorMsgPrefix(macroRefTok)+ - "macro " + macroRefTok.image + - " doesn't reference a PatternElement!" - ) - );} - else { // macro is a pattern element - pat = (PatternElement) ((PatternElement) macro).clone(); - } - break; - } - case string: - case leftBrace:{ - pat = BasicPatternElement(); - break; - } - case leftBracket:{ - pat = ComplexPatternElement(); - break; - } - default: - jj_la1[20] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -{if ("" != null) return pat;} - throw new Error("Missing return statement in function"); - } - -// PatternElement - final public - -BasicPatternElement BasicPatternElement() throws ParseException {Token shortTok = null; // string shorthand token - Constraint c = null; - BasicPatternElement bpe = new BasicPatternElement(curSPT); - switch (jj_nt.kind) { - case leftBrace:{ - jj_consume_token(leftBrace); - c = Constraint(); -bpe.addConstraint(c); - label_11: - while (true) { - switch (jj_nt.kind) { - case comma:{ - ; - break; - } - default: - jj_la1[21] = jj_gen; - break label_11; - } - jj_consume_token(comma); - c = Constraint(); -bpe.addConstraint(c); - } - jj_consume_token(rightBrace); - break; - } - case string:{ - // string shorthand - shortTok = jj_consume_token(string); -System.err.println(errorMsgPrefix(shortTok)+ - "string shorthand not supported yet, ignoring: " + shortTok.image - ); - break; - } - default: - jj_la1[22] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -finishBPE(bpe); - {if ("" != null) return bpe;} - throw new Error("Missing return statement in function"); - } - -// BasicPatternElement - final public - -ComplexPatternElement ComplexPatternElement() throws ParseException {KleeneOperator kleeneOperator = null; - Token bindingNameTok = null; - ConstraintGroup cg = new ConstraintGroup(); - jj_consume_token(leftBracket); - ConstraintGroup(cg); - jj_consume_token(rightBracket); - switch (jj_nt.kind) { - case kleeneOp: - case leftSquare:{ - kleeneOperator = KleeneOperator(); - break; - } - default: - jj_la1[23] = jj_gen; - ; - } - switch (jj_nt.kind) { - case colon:{ - jj_consume_token(colon); - switch (jj_nt.kind) { - case ident:{ - bindingNameTok = jj_consume_token(ident); - break; - } - case integer:{ - bindingNameTok = jj_consume_token(integer); - break; - } - default: - jj_la1[24] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - } - default: - jj_la1[25] = jj_gen; - ; - } -String bindingName = null; - if(bindingNameTok != null) - bindingName = bindingNameTok.image; - {if ("" != null) return new ComplexPatternElement(cg, kleeneOperator, bindingName);} - throw new Error("Missing return statement in function"); - } - -// ComplexPatternElement - final public -KleeneOperator KleeneOperator() throws ParseException {Token kleeneOpTok = null; - Token minTok = null; - Token maxTok = null; - Integer min = null; - Integer max = null; - switch (jj_nt.kind) { - case kleeneOp:{ - kleeneOpTok = jj_consume_token(kleeneOp); -if (kleeneOpTok == null) { - {if ("" != null) return new KleeneOperator(KleeneOperator.Type.SINGLE);} - } - - KleeneOperator.Type type = KleeneOperator.Type.getFromSymbol(kleeneOpTok.image); - if (type != null) - {if ("" != null) return new KleeneOperator(type);} - else { - System.err.println(errorMsgPrefix(kleeneOpTok)+ - "ignoring uninterpretable Kleene op " + kleeneOpTok.image); - {if ("" != null) return new KleeneOperator(KleeneOperator.Type.SINGLE);} - } - break; - } - case leftSquare:{ - jj_consume_token(leftSquare); - minTok = jj_consume_token(integer); - switch (jj_nt.kind) { - case comma:{ - jj_consume_token(comma); - maxTok = jj_consume_token(integer); - break; - } - default: - jj_la1[26] = jj_gen; - ; - } - jj_consume_token(rightSquare); -if (minTok != null) - min = new Integer(minTok.image); - if (maxTok != null) - max = new Integer(maxTok.image); - else - max = min; - {if ("" != null) return new KleeneOperator(min, max);} - break; - } - default: - jj_la1[27] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -// KleeneOperator - final public -Constraint Constraint() throws ParseException {Token annotTypeTok = null; - Token metaPropertyTok = null; - AnnotationAccessor accessor = null; - Token opTok = null; - Pair attrValPair = null; - boolean negate = false; - Constraint c = null; - Constraint embeddedConstraint = null; - String opString = null; - switch (jj_nt.kind) { - case pling:{ - jj_consume_token(pling); -negate = true; - break; - } - default: - jj_la1[28] = jj_gen; - ; - } - switch (jj_nt.kind) { - case ident:{ - annotTypeTok = jj_consume_token(ident); - break; - } - case string:{ - annotTypeTok = jj_consume_token(string); - break; - } - default: - jj_la1[29] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -c = Factory.getConstraintFactory().createConstraint(stringValueOf(annotTypeTok)); - if(negate) c.negate(); - switch (jj_nt.kind) { - case metaPropOp: - case ident: - case period:{ - switch (jj_nt.kind) { - case period:{ - accessor = FeatureAccessor(); - opTok = jj_consume_token(attrOp); - attrValPair = AttrVal(); -opString = opTok.image; - c.addAttribute(Factory.getConstraintFactory().createPredicate(opString, accessor, attrValPair.second)); - break; - } - case metaPropOp:{ - jj_consume_token(metaPropOp); - metaPropertyTok = jj_consume_token(ident); - opTok = jj_consume_token(attrOp); - attrValPair = AttrVal(); -accessor = Factory.getConstraintFactory().createMetaPropertyAccessor(metaPropertyTok.image); - opString = opTok.image; - c.addAttribute(Factory.getConstraintFactory().createPredicate(opString, accessor, attrValPair.second)); - break; - } - case ident:{ - // custom string operator name with value - opTok = jj_consume_token(ident); - switch (jj_nt.kind) { - case leftBrace:{ - jj_consume_token(leftBrace); - embeddedConstraint = Constraint(); - jj_consume_token(rightBrace); - break; - } - case pling: - case string: - case ident:{ - embeddedConstraint = Constraint(); - break; - } - default: - jj_la1[30] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -opString = opTok.image; - accessor = new SimpleAnnotationAccessor(); - c.addAttribute(Factory.getConstraintFactory().createPredicate(opString, accessor, embeddedConstraint)); - break; - } - default: - jj_la1[31] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - } - default: - jj_la1[32] = jj_gen; - ; - } -{if ("" != null) return c;} - throw new Error("Missing return statement in function"); - } - -// Constraint - -//attribute values: strings, identifers (=strings), integers, floats, -//booleans - final public AnnotationAccessor FeatureAccessor() throws ParseException {Token attrNameTok = null; -AnnotationAccessor accessor = null; - jj_consume_token(period); - switch (jj_nt.kind) { - case ident:{ - attrNameTok = jj_consume_token(ident); - break; - } - case string:{ - attrNameTok = jj_consume_token(string); - break; - } - default: - jj_la1[33] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -accessor = Factory.getConstraintFactory().createDefaultAccessor(stringValueOf(attrNameTok)); - {if ("" != null) return accessor;} - throw new Error("Missing return statement in function"); - } - -// attribute values: strings, identifers (=strings), integers, floats, -// booleans - final public Pair AttrVal() throws ParseException {Token attrValTok = null; - Pair val = new Pair(); - switch (jj_nt.kind) { - case integer: - case string: - case bool: - case ident: - case floatingPoint:{ - switch (jj_nt.kind) { - case string:{ - attrValTok = jj_consume_token(string); - break; - } - case ident:{ - attrValTok = jj_consume_token(ident); - break; - } - case integer:{ - attrValTok = jj_consume_token(integer); - break; - } - case floatingPoint:{ - attrValTok = jj_consume_token(floatingPoint); - break; - } - case bool:{ - attrValTok = jj_consume_token(bool); - break; - } - default: - jj_la1[34] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -val.first = new Integer(attrValTok.kind); - - switch(attrValTok.kind) { - case string: - // strip the quotes - val.second - = attrValTok.image.substring(1, attrValTok.image.length() - 1); - break; - case integer: - try { - val.second = Long.valueOf(attrValTok.image); - } catch(NumberFormatException e) { - System.err.println(errorMsgPrefix(attrValTok)+ - "couldn't parse integer " + - attrValTok.image + " - treating as 0"); - val.second = new Long(0); - } - break; - case ident: - val.second = new String(attrValTok.image); - break; - case bool: - val.second = Boolean.valueOf(attrValTok.image); - break; - case floatingPoint: - try { - val.second = Double.valueOf(attrValTok.image); - } catch(NumberFormatException e) { - System.err.println(errorMsgPrefix(attrValTok)+ - "couldn't parse float " + - attrValTok.image + " - treating as 0.0"); - val.second = new Double(0.0); - } - break; - default: - System.err.println(errorMsgPrefix(attrValTok)+ - "didn't understand type of " + attrValTok.image + ": ignoring" - ); - val.second = new String(""); - break; - } // switch - - {if ("" != null) return val;} - break; - } - case leftSquare:{ - val = TemplateCall(); -{if ("" != null) return val;} - break; - } - default: - jj_la1[35] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - final public Pair TemplateCall() throws ParseException {Token templateNameTok = null; - Token attrNameTok = null; - Pair attrVal = null; - Map<String, Object> placeholders = new HashMap<String, Object>(); - jj_consume_token(leftSquare); - templateNameTok = jj_consume_token(ident); - label_12: - while (true) { - switch (jj_nt.kind) { - case ident:{ - ; - break; - } - default: - jj_la1[36] = jj_gen; - break label_12; - } - attrNameTok = jj_consume_token(ident); - jj_consume_token(assign); - attrVal = AttrVal(); -placeholders.put(attrNameTok.image, attrVal.second); - switch (jj_nt.kind) { - case comma:{ - jj_consume_token(comma); - break; - } - default: - jj_la1[37] = jj_gen; - ; - } - } - jj_consume_token(rightSquare); -{if ("" != null) return substituteTemplate(templateNameTok, placeholders);} - throw new Error("Missing return statement in function"); - } - - final public RightHandSide RightHandSide(String phaseName, String ruleName, LeftHandSide lhs, String imports) throws ParseException {String[] block = new String[2]; - RightHandSide rhs = new RightHandSide(phaseName, ruleName, lhs, imports); - block = Action(true); -rhs.addBlock(block[0], block[1]); - label_13: - while (true) { - switch (jj_nt.kind) { - case comma:{ - ; - break; - } - default: - jj_la1[38] = jj_gen; - break label_13; - } - jj_consume_token(comma); - block = Action(true); -rhs.addBlock(block[0], block[1]); - } -{if ("" != null) return rhs;} /* action class not created yet */ - - throw new Error("Missing return statement in function"); - } - -// RightHandSide - - -// actions return 2 strings, one for the name of the block, and -// one for the block itself. if the name is null, it is an anonymous block. -// The checkLabel parameter indicates whether named blocks should check -// at parse time that the label they refer to is bound. Actions in -// a MacroDef can't make this check at parse time, but instead the -// check is done when the macro is referenced. - final public String[] Action(boolean checkLabel) throws ParseException {String[] block = new String[2]; - Token macroRefTok = null; - if (jj_2_2(3)) { - block = NamedJavaBlock(checkLabel); - } else { - switch (jj_nt.kind) { - case leftBrace:{ - block = AnonymousJavaBlock(); - break; - } - case colon: - case colonplus:{ - block = AssignmentExpression(checkLabel); - break; - } - case ident:{ - macroRefTok = jj_consume_token(ident); -Object macro = macrosMap.get(macroRefTok.image); - if(macro == null) - {if (true) throw(new ParseException(errorMsgPrefix(macroRefTok)+ - "unknown macro name " + macroRefTok.image));} - else if(macro instanceof PatternElement) - {if (true) throw( - new ParseException(errorMsgPrefix(macroRefTok)+ - "macro " + macroRefTok.image + - " references a PatternElement, not an Action" - ) - );} - else if(! (macro instanceof String[])) // this should never happen - {if (true) throw( - new ParseException(errorMsgPrefix(macroRefTok)+ - "macro " + macroRefTok.image + " doesn't reference an Action!" - ) - );} - else { // macro is an action - block = (String[]) macro; - // if the macro is a named block or assignment, check that - // the label is valid - if(block[0] != null && !bindingNameSet.contains(block[0])) { - {if (true) throw(new ParseException(errorMsgPrefix(macroRefTok)+ - "RHS macro reference " + macroRefTok.image + - " refers to unknown label: " + block[0]));} - } - } - break; - } - default: - jj_la1[39] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } -{if ("" != null) return block;} - throw new Error("Missing return statement in function"); - } - -// Action - - -// A :bind { ... } code block. The checkLabel parameter -// indicates whether or not we should check *at parse time* that the -// :bind label is valid. Assignments that are the body of a MacroDef -// can't check this at parse time but will be checked at reference time - final public String[] NamedJavaBlock(boolean checkLabel) throws ParseException {String[] block = new String[2]; - Token nameTok = null; - jj_consume_token(colon); - nameTok = jj_consume_token(ident); -block[0] = nameTok.image; - // did we get a non-existent block name? - if(checkLabel && block[0] != null) - if(! bindingNameSet.contains(block[0])) { - {if (true) throw(new ParseException(errorMsgPrefix(nameTok)+ - "unknown label in RHS action: " + block[0]));} - } - jj_consume_token(leftBrace); - block[1] = ConsumeBlock(); -{if ("" != null) return block;} - throw new Error("Missing return statement in function"); - } - -// NamedJavaBlock - final public - -String[] AnonymousJavaBlock() throws ParseException {String[] block = new String[2]; - block[0] = null; // no name - - jj_consume_token(leftBrace); - block[1] = ConsumeBlock(); -{if ("" != null) return block;} - throw new Error("Missing return statement in function"); - } - -// AnonymousJavaBlock - - -// A :bind.Type = {features} assignment. The checkLabel parameter -// indicates whether or not we should check *at parse time* that the -// :bind label is valid. Assignments that are the body of a MacroDef -// can't check this at parse time but will be checked at reference time - final public String[] AssignmentExpression(boolean checkLabel) throws ParseException {String[] block = new String[2]; - StringBuffer blockBuffer = new StringBuffer(); - Token nameTok = null; - Token opTok = null; - String newAnnotType = null; - String newAttrName = null; - String nl = Strings.getNl(); - String annotSetName = null; - Pair attrVal = null; - String existingAnnotSetName = null; - String existingAnnotType = null; - String existingAttrName = null; - String opName = null; - - blockBuffer.append("// RHS assignment block" + nl); - blockBuffer.append( - " gate.FeatureMap features = gate.Factory.newFeatureMap();" + nl - ); - switch (jj_nt.kind) { - case colon:{ - jj_consume_token(colon); - break; - } - case colonplus:{ - jj_consume_token(colonplus); -{if (true) throw new - ParseException(":+ not a legal operator (no multi-span annots)");} - break; - } - default: - jj_la1[40] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - // the name of the bound annotation set we're referencing - nameTok = jj_consume_token(ident); -block[0] = nameTok.image; - // did we get a non-existent block name? - if(checkLabel && block[0] != null) - if(! bindingNameSet.contains(block[0])) { - {if (true) throw(new ParseException(errorMsgPrefix(nameTok)+ - "unknown label in RHS action: " + block[0]));} - } - - annotSetName = block[0] + "Annots"; - jj_consume_token(period); - switch (jj_nt.kind) { - case ident:{ - nameTok = jj_consume_token(ident); - break; - } - case string:{ - nameTok = jj_consume_token(string); - break; - } - default: - jj_la1[41] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -newAnnotType = stringValueOf(nameTok); - - // start of the attribute stuff - blockBuffer.append(" java.lang.Object val = null;" + nl); - jj_consume_token(assign); - jj_consume_token(leftBrace); - label_14: - while (true) { - switch (jj_nt.kind) { - case string: - case ident:{ - ; - break; - } - default: - jj_la1[42] = jj_gen; - break label_14; - } - switch (jj_nt.kind) { - case ident:{ - nameTok = jj_consume_token(ident); - break; - } - case string:{ - nameTok = jj_consume_token(string); - break; - } - default: - jj_la1[43] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(assign); -newAttrName = stringValueOf(nameTok); - switch (jj_nt.kind) { - case integer: - case string: - case bool: - case ident: - case floatingPoint: - case leftSquare:{ - // a static attribute value - attrVal = AttrVal(); -switch(((Integer) attrVal.first).intValue()) { - case string: - blockBuffer.append( - " val = "); - appendJavaStringLiteral(blockBuffer, attrVal.second.toString()); - blockBuffer.append(";" + nl); - break; - case integer: - blockBuffer.append(" try { " + - "val = java.lang.Long.valueOf("); - appendJavaStringLiteral(blockBuffer, attrVal.second.toString()); - blockBuffer.append("); }" + - nl + " catch(java.lang.NumberFormatException e) { }" + nl - ); - break; - case ident: - blockBuffer.append( - " val = "); - appendJavaStringLiteral(blockBuffer, attrVal.second.toString()); - blockBuffer.append(";" + nl); - break; - case bool: - blockBuffer.append( - " val = java.lang.Boolean.valueOf("); - appendJavaStringLiteral(blockBuffer, attrVal.second.toString()); - blockBuffer.append(");" + nl); - break; - case floatingPoint: - blockBuffer.append(" try { " + - "val = java.lang.Double.valueOf("); - appendJavaStringLiteral(blockBuffer, attrVal.second.toString()); - blockBuffer.append("); }" + - nl + " catch(java.lang.NumberFormatException e) { }" + nl - ); - break; - default: - blockBuffer.append( - " val = \u005c"\u005c";" + nl - ); - break; - } // switch - - blockBuffer.append(" features.put("); - appendJavaStringLiteral(blockBuffer, newAttrName); - blockBuffer.append(", val);"); - blockBuffer.append(nl); - break; - } - case colon:{ - jj_consume_token(colon); - nameTok = jj_consume_token(ident); -existingAnnotSetName = nameTok.image + "ExistingAnnots"; - if(checkLabel && ! bindingNameSet.contains(nameTok.image)) - {if (true) throw( - new ParseException(errorMsgPrefix(nameTok)+ - "unknown label in RHS action(2): " + nameTok.image - ) - );} - - blockBuffer.append( - " { // need a block for the existing annot set" + nl + - " gate.AnnotationSet " + existingAnnotSetName + - " = (gate.AnnotationSet)bindings.get("); - appendJavaStringLiteral(blockBuffer, nameTok.image); - blockBuffer.append("); " + nl + - " java.lang.Object existingFeatureValue;" + nl); - switch (jj_nt.kind) { - case period:{ - jj_consume_token(period); - switch (jj_nt.kind) { - case ident:{ - nameTok = jj_consume_token(ident); - break; - } - case string:{ - nameTok = jj_consume_token(string); - break; - } - default: - jj_la1[44] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -existingAnnotType = stringValueOf(nameTok); - switch (jj_nt.kind) { - case period:{ - opTok = jj_consume_token(period); - break; - } - case metaPropOp:{ - opTok = jj_consume_token(metaPropOp); - break; - } - default: - jj_la1[45] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - switch (jj_nt.kind) { - case ident:{ - nameTok = jj_consume_token(ident); - break; - } - case string:{ - nameTok = jj_consume_token(string); - break; - } - default: - jj_la1[46] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -opName = opTok.image; existingAttrName = stringValueOf(nameTok); -blockBuffer.append( - " if (" + existingAnnotSetName + " != null) {" + nl + - " gate.AnnotationSet existingAnnots = " + nl + - " " + existingAnnotSetName + ".get("); - appendJavaStringLiteral(blockBuffer, existingAnnotType); - blockBuffer.append(");" + nl + - " if (existingAnnots != null) {" + nl + - " java.util.Iterator iter = existingAnnots.iterator();" + nl + - " while(iter.hasNext()) {" + nl + - " gate.Annotation existingA = (gate.Annotation) iter.next();" + nl); - - // handle :bind.Type@string, :bind.Type@cleanString and :bind.Type@length - if(opName.equals("@") && ( existingAttrName.equals("string") || existingAttrName.equals("cleanString") || existingAttrName.equals("length") ) ) { - blockBuffer.append( - " int from = existingA.getStartNode().getOffset().intValue();" + nl + - " int to = existingA.getEndNode().getOffset().intValue();" + nl + - " existingFeatureValue = doc.getContent().toString().substring(from,to);" + nl - ); - if ( existingAttrName.equals("cleanString") ) { - blockBuffer.append( - " existingFeatureValue = gate.Utils.cleanString((String)existingFeatureValue);" + nl - ); - } - if ( existingAttrName.equals("length") ) { - blockBuffer.append( - " existingFeatureValue = (long)to - (long)from;" + nl - ); - } - } else { - blockBuffer.append("existingFeatureValue = existingA.getFeatures().get("); - appendJavaStringLiteral(blockBuffer, existingAttrName); - blockBuffer.append(");" + nl); - } - - blockBuffer.append( - " if(existingFeatureValue != null) {" + nl + - " features.put("); - appendJavaStringLiteral(blockBuffer, newAttrName); - blockBuffer.append(", existingFeatureValue);" + nl + - " break;" + nl + - " }" + nl + - " } // while" + nl + - " } // if not null" + nl + - " } // if not null" + nl); - break; - } - case metaPropOp:{ - opTok = jj_consume_token(metaPropOp); - nameTok = jj_consume_token(ident); -opName = opTok.image; existingAttrName = nameTok.image; -if(opName.equals("@") && ( existingAttrName.equals("string") || existingAttrName.equals("cleanString") || existingAttrName.equals("length") ) ) { - blockBuffer.append( - " if (" + existingAnnotSetName + " != null) {" + nl + - " int from = " + existingAnnotSetName +".firstNode().getOffset().intValue();" + nl + - " int to = " + existingAnnotSetName +".lastNode().getOffset().intValue();" + nl + - " existingFeatureValue = doc.getContent().toString().substring(from,to);" + nl - ); - if ( existingAttrName.equals("cleanString") ) { - blockBuffer.append( - " existingFeatureValue = ((String)existingFeatureValue).replaceAll(\u005c"\u005c\u005c\u005c\u005cs+\u005c", \u005c" \u005c").trim();" + nl - ); - } - if ( existingAttrName.equals("length") ) { - blockBuffer.append( - " existingFeatureValue = (long)to - (long)from;" + nl - ); - } - blockBuffer.append( - " if(existingFeatureValue != null) {" + nl + - " features.put("); - appendJavaStringLiteral(blockBuffer, newAttrName); - blockBuffer.append(", existingFeatureValue);" + nl + - " }" + nl + - " } // if not null" + nl); - } - else { - {if (true) throw new ParseException(errorMsgPrefix(nameTok) + - "Unsupported RHS meta-property " + nameTok.image);} - } - break; - } - default: - jj_la1[47] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } -blockBuffer.append( - " } // block for existing annots" + nl - ); - break; - } - default: - jj_la1[48] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - switch (jj_nt.kind) { - case comma:{ - jj_consume_token(comma); - break; - } - default: - jj_la1[49] = jj_gen; - ; - } - } - jj_consume_token(rightBrace); -appendAnnotationAdd(blockBuffer, newAnnotType, annotSetName); - block[1] = blockBuffer.toString(); - {if ("" != null) return block;} - throw new Error("Missing return statement in function"); - } - - void appendSpecials(Token tok, StringBuffer block) throws ParseException {if(tok != null) { - // each specialToken points to its *preceding* one, so we must recursively - // append the previous special (which will recursively append its - // predecessor, etc.) before appending the current one. - appendSpecials(tok.specialToken, block); - block.append(tok.image); - } - } - - String ConsumeBlock() throws ParseException, ParseException {StringBuffer block = new StringBuffer(); // to collect the block in - int nesting = 1; // the first "{" was consumed before we were called - - // this is the first 'proper' token in the block - Token nextTok = getNextToken(); - if(nextTok.kind == EOF) { - throw new ParseException(errorMsgPrefix(nextTok) - + "Unexpected EOF in Java block"); - } - - // for line numbers in the original Jape we want the first - // token, normal or special (i.e. comments) so look back from - // the first 'proper' token until we get back to the token - // after the opening brace - Token blockStart = nextTok; - while (blockStart.specialToken != null) { - blockStart = blockStart.specialToken; - } - - // append the info about the source Jape to the beginning - // of the loaded source Java block - block.append(" // JAPE Source: " + baseURL+":" + blockStart.beginLine + "\u005cn"); - - // step through the code until the final brace - while(nesting != 0) { - - // add in any preceding spaces and comments - appendSpecials(nextTok.specialToken, block); - - // adjust nesting - if(nextTok.image.equals("{")) { - nesting++; - /*Debug.pr(this, "ParseCpsl.ConsumeBlock: nesting = " + nesting);*/ - } else if(nextTok.image.equals("}")) { - nesting--; - /*Debug.pr(this, "ParseCpsl.ConsumeBlock: nesting = " + nesting);*/ - } - - // add the image to the block string (but not the final "}") - if(nesting > 0) { - if(nextTok.kind == string) { - // deal with escapes in string literals - appendJavaStringLiteral(block, - nextTok.image.substring(1, nextTok.image.length() - 1)); - } - else { - block.append(nextTok.image); - } - } - /*Debug.pr(this, "ParseCpsl.ConsumeBlock: nextTok.image = ^" + - nextTok.image + "^");*/ - - // if we haven't worked all the way out of the nesting - // then get the next token - if (nesting != 0) { - nextTok = getNextToken(); - if(nextTok.kind == EOF) { - throw new ParseException(errorMsgPrefix(nextTok) - + "Unexpected EOF in Java block"); - } - } - - } // while - - /*Debug.pr(this, "ParseCpsl.ConsumeBlock: block = " + block.toString());*/ - - return block.toString(); - } - - private boolean jj_2_1(int xla) - { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(0, xla); } - } - - private boolean jj_2_2(int xla) - { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_2(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1, xla); } - } - - private boolean jj_3R_27() - { - if (jj_scan_token(pling)) return true; - return false; - } - - private boolean jj_3R_26() - { - if (jj_3R_15()) return true; - return false; - } - - private boolean jj_3R_25() - { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_27()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_scan_token(49)) { - jj_scanpos = xsp; - if (jj_scan_token(47)) return true; - } - return false; - } - - private boolean jj_3R_23() - { - if (jj_scan_token(string)) return true; - return false; - } - - private boolean jj_3R_21() - { - if (jj_scan_token(leftBracket)) return true; - if (jj_3R_24()) return true; - return false; - } - - private boolean jj_3R_24() - { - Token xsp; - if (jj_3R_26()) return true; - while (true) { - xsp = jj_scanpos; - if (jj_3R_26()) { jj_scanpos = xsp; break; } - } - return false; - } - - private boolean jj_3R_19() - { - if (jj_3R_21()) return true; - return false; - } - - private boolean jj_3R_18() - { - if (jj_3R_20()) return true; - return false; - } - - private boolean jj_3R_16() - { - if (jj_scan_token(colon)) return true; - if (jj_scan_token(ident)) return true; - if (jj_scan_token(leftBrace)) return true; - return false; - } - - private boolean jj_3R_17() - { - if (jj_scan_token(ident)) return true; - return false; - } - - private boolean jj_3R_22() - { - if (jj_scan_token(leftBrace)) return true; - if (jj_3R_25()) return true; - return false; - } - - private boolean jj_3R_15() - { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_17()) { - jj_scanpos = xsp; - if (jj_3R_18()) { - jj_scanpos = xsp; - if (jj_3R_19()) return true; - } - } - return false; - } - - private boolean jj_3_2() - { - if (jj_3R_16()) return true; - return false; - } - - private boolean jj_3R_20() - { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_22()) { - jj_scanpos = xsp; - if (jj_3R_23()) return true; - } - return false; - } - - private boolean jj_3_1() - { - if (jj_3R_15()) return true; - return false; - } - - /** Generated Token Manager. */ - public ParseCpslTokenManager token_source; - SimpleCharStream jj_input_stream; - /** Current token. */ - public Token token; - /** Next token. */ - public Token jj_nt; - private Token jj_scanpos, jj_lastpos; - private int jj_la; - private int jj_gen; - final private int[] jj_la1 = new int[50]; - static private int[] jj_la1_0; - static private int[] jj_la1_1; - static private int[] jj_la1_2; - static { - jj_la1_init_0(); - jj_la1_init_1(); - jj_la1_init_2(); - } - private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x800,0xe00000,0xe00000,0x1000000,0x2000,0x1f01000,0x6000000,0x0,0x0,0x0,0x0,0x6000000,0x38000000,0x38000000,0x100000,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x28000,0x28000,0x20000,0x30000,0x0,0x0,0x0,0x0,0x0,0x2120000,0xa028000,0x800000,0xa028000,0xa028000,0x1000000,0x2008000,0x20000001,0x20008,0x100000,0x1000000,0x20000001,0x0,0x28000,0x2028000,0x420004,0x420004,0x28000,0x78008,0x20078008,0x20000,0x1000000,0x1000000,0x2120000,0x100000,0x28000,0x28000,0x28000,0x28000,0x400004,0x28000,0x400004,0x20178008,0x1000000,}; - } - private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; - } - final private JJCalls[] jj_2_rtns = new JJCalls[2]; - private boolean jj_rescan = false; - private int jj_gc = 0; - - /** Constructor with InputStream. */ - public ParseCpsl(java.io.InputStream stream) { - this(stream, null); - } - /** Constructor with InputStream and supplied encoding */ - public ParseCpsl(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 ParseCpslTokenManager(jj_input_stream); - token = new Token(); - token.next = jj_nt = token_source.getNextToken(); - jj_gen = 0; - for (int i = 0; i < 50; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream stream) { - ReInit(stream, null); - } - /** Reinitialise. */ - public void ReInit(java.io.InputStream stream, String encoding) { - try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } - token_source.ReInit(jj_input_stream); - token = new Token(); - token.next = jj_nt = token_source.getNextToken(); - jj_gen = 0; - for (int i = 0; i < 50; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - /** Constructor. */ - public ParseCpsl(java.io.Reader stream) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - token_source = new ParseCpslTokenManager(jj_input_stream); - token = new Token(); - token.next = jj_nt = token_source.getNextToken(); - jj_gen = 0; - for (int i = 0; i < 50; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - /** Reinitialise. */ - public void ReInit(java.io.Reader stream) { - jj_input_stream.ReInit(stream, 1, 1); - token_source.ReInit(jj_input_stream); - token = new Token(); - token.next = jj_nt = token_source.getNextToken(); - jj_gen = 0; - for (int i = 0; i < 50; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - /** Constructor with generated Token Manager. */ - public ParseCpsl(ParseCpslTokenManager tm) { - token_source = tm; - token = new Token(); - token.next = jj_nt = token_source.getNextToken(); - jj_gen = 0; - for (int i = 0; i < 50; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - /** Reinitialise. */ - public void ReInit(ParseCpslTokenManager tm) { - token_source = tm; - token = new Token(); - token.next = jj_nt = token_source.getNextToken(); - jj_gen = 0; - for (int i = 0; i < 50; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - private Token jj_consume_token(int kind) throws ParseException { - Token oldToken = token; - if ((token = jj_nt).next != null) jj_nt = jj_nt.next; - else jj_nt = jj_nt.next = token_source.getNextToken(); - 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; - } - jj_nt = token; - token = oldToken; - jj_kind = kind; - throw generateParseException(); - } - - @SuppressWarnings("serial") - static private final class LookaheadSuccess extends java.lang.Error { } - final private LookaheadSuccess jj_ls = new LookaheadSuccess(); - private boolean jj_scan_token(int kind) { - if (jj_scanpos == jj_lastpos) { - jj_la--; - if (jj_scanpos.next == null) { - jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); - } else { - jj_lastpos = jj_scanpos = jj_scanpos.next; - } - } else { - jj_scanpos = jj_scanpos.next; - } - if (jj_rescan) { - int i = 0; Token tok = token; - while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } - if (tok != null) jj_add_error_token(kind, i); - } - if (jj_scanpos.kind != kind) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls; - return false; - } - - -/** Get the next Token. */ - final public Token getNextToken() { - if ((token = jj_nt).next != null) jj_nt = jj_nt.next; - else jj_nt = jj_nt.next = token_source.getNextToken(); - jj_gen++; - return token; - } - -/** Get the specific Token. */ - final public Token getToken(int index) { - Token t = token; - for (int i = 0; i < index; i++) { - if (t.next != null) t = t.next; - else t = t.next = token_source.getNextToken(); - } - return t; - } - - private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>(); - private int[] jj_expentry; - private int jj_kind = -1; - private int[] jj_lasttokens = new int[100]; - private int jj_endpos; - - private void jj_add_error_token(int kind, int pos) { - if (pos >= 100) return; - if (pos == jj_endpos + 1) { - jj_lasttokens[jj_endpos++] = kind; - } else if (jj_endpos != 0) { - jj_expentry = new int[jj_endpos]; - for (int i = 0; i < jj_endpos; i++) { - jj_expentry[i] = jj_lasttokens[i]; - } - jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) { - int[] oldentry = (int[])(it.next()); - if (oldentry.length == jj_expentry.length) { - for (int i = 0; i < jj_expentry.length; i++) { - if (oldentry[i] != jj_expentry[i]) { - continue jj_entries_loop; - } - } - jj_expentries.add(jj_expentry); - break jj_entries_loop; - } - } - if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; - } - } - - /** Generate ParseException. */ - public ParseException generateParseException() { - jj_expentries.clear(); - boolean[] la1tokens = new boolean[73]; - if (jj_kind >= 0) { - la1tokens[jj_kind] = true; - jj_kind = -1; - } - for (int i = 0; i < 50; i++) { - if (jj_la1[i] == jj_gen) { - for (int j = 0; j < 32; j++) { - if ((jj_la1_0[i] & (1<<j)) != 0) { - la1tokens[j] = true; - } - if ((jj_la1_1[i] & (1<<j)) != 0) { - la1tokens[32+j] = true; - } - if ((jj_la1_2[i] & (1<<j)) != 0) { - la1tokens[64+j] = true; - } - } - } - } - for (int i = 0; i < 73; i++) { - if (la1tokens[i]) { - jj_expentry = new int[1]; - jj_expentry[0] = i; - jj_expentries.add(jj_expentry); - } - } - jj_endpos = 0; - jj_rescan_token(); - jj_add_error_token(0, 0); - int[][] exptokseq = new int[jj_expentries.size()][]; - for (int i = 0; i < jj_expentries.size(); i++) { - exptokseq[i] = jj_expentries.get(i); - } - return new ParseException(token, exptokseq, tokenImage); - } - - /** Enable tracing. */ - final public void enable_tracing() { - } - - /** Disable tracing. */ - final public void disable_tracing() { - } - - private void jj_rescan_token() { - jj_rescan = true; - for (int i = 0; i < 2; 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; - } - } - p = p.next; - } while (p != null); - } catch(LookaheadSuccess ls) { } - } - jj_rescan = false; - } - - private void jj_save(int index, int xla) { - JJCalls p = jj_2_rtns[index]; - while (p.gen > jj_gen) { - if (p.next == null) { p = p.next = new JJCalls(); break; } - p = p.next; - } - p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; - } - - static final class JJCalls { - int gen; - Token first; - int arg; - JJCalls next; - } - -} // class ParseCpsl - Modified: gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpsl.jj =================================================================== --- gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpsl.jj 2016-10-09 16:14:13 UTC (rev 19654) +++ gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpsl.jj 2016-10-09 16:41:05 UTC (rev 19655) @@ -1120,7 +1120,7 @@ // the annotation type ( annotTypeTok=<ident> | annotTypeTok = <string> ) { - c = Factory.getConstraintFactory().createConstraint(stringValueOf(annotTypeTok)); + c = JapeFactory.getConstraintFactory().createConstraint(stringValueOf(annotTypeTok)); if(negate) c.negate(); } @@ -1131,7 +1131,7 @@ accessor=FeatureAccessor() opTok=<attrOp> attrValPair=AttrVal() { opString = opTok.image; - c.addAttribute(Factory.getConstraintFactory().createPredicate(opString, accessor, attrValPair.second)); + c.addAttribute(JapeFactory.getConstraintFactory().createPredicate(opString, accessor, attrValPair.second)); } ) | @@ -1139,9 +1139,9 @@ // meta-property name with comparison operator <metaPropOp> metaPropertyTok=<ident> opTok=<attrOp> attrValPair=AttrVal() { - accessor = Factory.getConstraintFactory().createMetaPropertyAccessor(metaPropertyTok.image); + accessor = JapeFactory.getConstraintFactory().createMetaPropertyAccessor(metaPropertyTok.image); opString = opTok.image; - c.addAttribute(Factory.getConstraintFactory().createPredicate(opString, accessor, attrValPair.second)); + c.addAttribute(JapeFactory.getConstraintFactory().createPredicate(opString, accessor, attrValPair.second)); } ) | @@ -1157,7 +1157,7 @@ { opString = opTok.image; accessor = new SimpleAnnotationAccessor(); - c.addAttribute(Factory.getConstraintFactory().createPredicate(opString, accessor, embeddedConstraint)); + c.addAttribute(JapeFactory.getConstraintFactory().createPredicate(opString, accessor, embeddedConstraint)); } ) )? @@ -1180,7 +1180,7 @@ <period> ( attrNameTok=<ident> | attrNameTok = <string> ) ) { - accessor = Factory.getConstraintFactory().createDefaultAccessor(stringValueOf(attrNameTok)); + accessor = JapeFactory.getConstraintFactory().createDefaultAccessor(stringValueOf(attrNameTok)); return accessor; } } Deleted: gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslConstants.java =================================================================== --- gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslConstants.java 2016-10-09 16:14:13 UTC (rev 19654) +++ gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslConstants.java 2016-10-09 16:41:05 UTC (rev 19655) @@ -1,222 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. ParseCpslConstants.java */ -package gate.jape.parser; - - -/** - * Token literal values and constants. - * Generated by org.javacc.parser.OtherFilesGen#start() - */ -public interface ParseCpslConstants { - - /** End of File. */ - int EOF = 0; - /** RegularExpression Id. */ - int space = 1; - /** RegularExpression Id. */ - int spaces = 2; - /** RegularExpression Id. */ - int newline = 3; - /** RegularExpression Id. */ - int digits = 4; - /** RegularExpression Id. */ - int letter = 5; - /** RegularExpression Id. */ - int letterOrUnderscore = 6; - /** RegularExpression Id. */ - int letters = 7; - /** RegularExpression Id. */ - int lettersAndDigits = 8; - /** RegularExpression Id. */ - int letterOrDigitOrDash = 9; - /** RegularExpression Id. */ - int lettersAndDigitsAndDashes = 10; - /** RegularExpression Id. */ - int multiphase = 11; - /** RegularExpression Id. */ - int phases = 12; - /** RegularExpression Id. */ - int path = 13; - /** RegularExpression Id. */ - int phasesWhiteSpace = 14; - /** RegularExpression Id. */ - int phasesSingleLineCStyleComment = 15; - /** RegularExpression Id. */ - int phasesSingleLineCpslStyleComment = 16; - /** RegularExpression Id. */ - int phasesCommentStart = 17; - /** RegularExpression Id. */ - int phasesCommentChars = 18; - /** RegularExpression Id. */ - int phasesCommentEnd = 19; - /** RegularExpression Id. */ - int javaimport = 20; - /** RegularExpression Id. */ - int controllerstarted = 21; - /** RegularExpression Id. */ - int controllerfinished = 22; - /** RegularExpression Id. */ - int controlleraborted = 23; - /** RegularExpression Id. */ - int phase = 24; - /** RegularExpression Id. */ - int input = 25; - /** RegularExpression Id. */ - int option = 26; - /** RegularExpression Id. */ - int rule = 27; - /** RegularExpression Id. */ - int macro = 28; - /** RegularExpression Id. */ - int template = 29; - /** RegularExpression Id. */ - int priority = 30; - /** RegularExpression Id. */ - int pling = 31; - /** RegularExpression Id. */ - int kleeneOp = 32; - /** RegularExpression Id. */ - int attrOp = 33; - /** RegularExpression Id. */ - int metaPropOp = 34; - /** RegularExpression Id. */ - int integer = 35; - /** RegularExpression Id. */ - int string = 47; - /** RegularExpression Id. */ - int bool = 48; - /** RegularExpression Id. */ - int ident = 49; - /** RegularExpression Id. */ - int floatingPoint = 50; - /** RegularExpression Id. */ - int exponent = 51; - /** RegularExpression Id. */ - int colon = 52; - /** RegularExpression Id. */ - int semicolon = 53; - /** RegularExpression Id. */ - int period = 54; - /** RegularExpression Id. */ - int bar = 55; - /** RegularExpression Id. */ - int comma = 56; - /** RegularExpression Id. */ - int leftBrace = 57; - /** RegularExpression Id. */ - int rightBrace = 58; - /** RegularExpression Id. */ - int leftBracket = 59; - /** RegularExpression Id. */ - int rightBracket = 60; - /** RegularExpression Id. */ - int leftSquare = 61; - /** RegularExpression Id. */ - int rightSquare = 62; - /** RegularExpression Id. */ - int assign = 63; - /** RegularExpression Id. */ - int colonplus = 64; - /** RegularExpression Id. */ - int whiteSpace = 65; - /** RegularExpression Id. */ - int singleLineCStyleComment = 66; - /** RegularExpression Id. */ - int singleLineCpslStyleComment = 67; - /** RegularExpression Id. */ - int commentStart = 68; - /** RegularExpression Id. */ - int commentChars = 69; - /** RegularExpression Id. */ - int commentEnd = 70; - /** RegularExpression Id. */ - int other = 71; - - /** Lexical state. */ - int DEFAULT = 0; - /** Lexical state. */ - int IN_PHASES = 1; - /** Lexical state. */ - int PHASES_WITHIN_COMMENT = 2; - /** Lexical state. */ - int IN_STRING = 3; - /** Lexical state. */ - int WITHIN_COMMENT = 4; - - /** Literal token values. */ - String[] tokenImage = { - "<EOF>", - "<space>", - "<spaces>", - "<newline>", - "<digits>", - "<letter>", - "<letterOrUnderscore>", - "<letters>", - "<lettersAndDigits>", - "<letterOrDigitOrDash>", - "<lettersAndDigitsAndDashes>", - "\"Multiphase:\"", - "\"Phases:\"", - "<path>", - "<phasesWhiteSpace>", - "<phasesSingleLineCStyleComment>", - "<phasesSingleLineCpslStyleComment>", - "<phasesCommentStart>", - "<phasesCommentChars>", - "<phasesCommentEnd>", - "\"Imports:\"", - "\"ControllerStarted:\"", - "\"ControllerFinished:\"", - "\"ControllerAborted:\"", - "\"Phase:\"", - "\"Input:\"", - "\"Options:\"", - "\"Rule:\"", - "\"Macro:\"", - "\"Template:\"", - "\"Priority:\"", - "\"!\"", - "<kleeneOp>", - "<attrOp>", - "\"@\"", - "<integer>", - "\"\\\"\"", - "\"\\\\n\"", - "\"\\\\r\"", - "\"\\\\t\"", - "\"\\\\b\"", - "\"\\\\f\"", - "\"\\\\\\\"\"", - "\"\\\\\\\'\"", - "\"\\\\\\\\\"", - "<token of kind 45>", - "<token of kind 46>", - "\"\\\"\"", - "<bool>", - "<ident>", - "<floatingPoint>", - "<exponent>", - "\":\"", - "\";\"", - "\".\"", - "\"|\"", - "\",\"", - "\"{\"", - "\"}\"", - "\"(\"", - "\")\"", - "\"[\"", - "\"]\"", - "\"=\"", - "\":+\"", - "<whiteSpace>", - "<singleLineCStyleComment>", - "<singleLineCpslStyleComment>", - "<commentStart>", - "<commentChars>", - "<commentEnd>", - "<other>", - "\"-->\"", - }; - -} Deleted: gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslPlain.html =================================================================== --- gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslPlain.html 2016-10-09 16:14:13 UTC (rev 19654) +++ gate/branches/sawdust2/plugins/ANNIE/src/main/java/gate/jape/parser/ParseCpslPlain.html 2016-10-09 16:41:05 UTC (rev 19655) @@ -1,1109 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<TITLE>BNF for ParseCpsl.jj</TITLE> -</HEAD> -<BODY> -<H1 ALIGN=CENTER>BNF for ParseCpsl.jj</H1> -<H2 ALIGN=CENTER>TOKENS</H2> -<TABLE> - <!-- Special token --> - <TR> - <TD> -<PRE> -/////////////////// -// lexical analysis -/////////////////// - -//////////////// -// utility stuff -</PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#space: "\n" | "\r" | "\t" | "\f" | " "> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#spaces: ("\n" | "\r" | "\t" | "\f" | " ")+> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#newline: "\n" | "\r" | "\n\r" | "\r\n"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#digits: (["0"-"9"])+> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#letter: ["A"-"Z","a"-"z"]> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#letterOrUnderscore: ["A"-"Z","a"-"z","_"]> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#letters: (["A"-"Z","a"-"z"])+> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#lettersAndDigits: (["A"-"Z","a"-"z","0"-"9"])+> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#letterOrDigitOrDash: ["A"-"Z","a"-"z","0"-"9","-","_"]> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#lettersAndDigitsAndDashes: (["A"-"Z","a"-"z","0"-"9","-","_"])+> -} - - </PRE> - </TD> - </TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -//////////////// -// parsed tokens -</PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<multiphase: "Multiphase:"> -} - - </PRE> - </TD> - </TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// phases has its own lexical state so we can deal with relative paths -// pointing to grammar files -</PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<phases: "Phases:"> : IN_PHASES -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<IN_PHASES> TOKEN : { -<path: (["A"-"Z","a"-"z","0"-"9","-","_","/","\\","."])+> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<IN_PHASES> SPECIAL : { -<phasesWhiteSpace: (<space>)+> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<IN_PHASES> SPECIAL : { -<phasesSingleLineCStyleComment: "//" (~["\n","\r"])* <newline>> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<IN_PHASES> SPECIAL : { -<phasesSingleLineCpslStyleComment: ";;" (~["\n","\r"])* <newline>> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<IN_PHASES> SPECIAL : { -<phasesCommentStart: "/*" | "#|"> : PHASES_WITHIN_COMMENT -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<PHASES_WITHIN_COMMENT> MORE : { -<phasesCommentChars: ~[]> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<PHASES_WITHIN_COMMENT> SPECIAL : { -<phasesCommentEnd: "*/" | "|#"> : IN_PHASES -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<javaimport: "Imports:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<controllerstarted: "ControllerStarted:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<controllerfinished: "ControllerFinished:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<controlleraborted: "ControllerAborted:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<phase: "Phase:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<input: "Input:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<option: "Options:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<rule: "Rule:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<macro: "Macro:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<template: "Template:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN [IGNORE_CASE] : { -<priority: "Priority:"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<pling: "!"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<kleeneOp: "*" | "+" | "?"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<attrOp: "==" | "!=" | ">" | "<" | ">=" | "<=" | "=~" | "!~" | "==~" | "!=~"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<metaPropOp: "@"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<integer: (["+","-"])? (["0"-"9"])+> -} - - </PRE> - </TD> - </TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -//starts a string -</PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> MORE : { -"\"" : IN_STRING -} - - </PRE> - </TD> - </TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -//reads the contents of the string -</PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<IN_STRING> MORE : { -"\\n" : { -| "\\r" : { -| "\\t" : { -| "\\b" : { -| "\\f" : { -| "\\\"" : { -| "\\\'" : { -| "\\\\" : { -| <"\\u" ["0"-"9","A"-"F","a"-"f"] ["0"-"9","A"-"F","a"-"f"] ["0"-"9","A"-"F","a"-"f"] ["0"-"9","A"-"F","a"-"f"]> : { -| <~["\"","\\"]> -} - - </PRE> - </TD> - </TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -//finishes the string -</PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<IN_STRING> TOKEN : { -<string: "\""> : DEFAULT -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<bool: "true" | "false"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<ident: <letterOrUnderscore> (<letterOrDigitOrDash>)*> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<floatingPoint: (["+","-"])? ((["0"-"9"])+ "." (["0"-"9"])* (<exponent>)? (["f","F","d","D"])? | "." (["0"-"9"])+ (<exponent>)? (["f","F","d","D"])? | (["0"-"9"])+ <exponent> (["f","F","d","D"])? | (["0"-"9"])+ (<exponent>)? ["f","F","d","D"])> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<#exponent: ["e","E"] (["+","-"])? (["0"-"9"])+> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<colon: ":"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<semicolon: ";"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<period: "."> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<bar: "|"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<comma: ","> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<leftBrace: "{"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<rightBrace: "}"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<leftBracket: "("> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<rightBracket: ")"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<leftSquare: "["> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<rightSquare: "]"> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<assign: "="> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<colonplus: ":+"> -} - - </PRE> - </TD> - </TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// <DEFAULT> TOKEN: { <periodOrMetaPropOp: <metaPropOp> | <period> > } -//<DEFAULT> TOKEN: { <periodOrMeta: "^" > } -/*<DEFAULT> SPECIAL_TOKEN: { // catch all for Java block processing - <other: (~[])> -}*/ - -//////////////////// -// non-parsed tokens - -// we make comments and spaces special tokens to support an editor -</PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> SPECIAL : { -<whiteSpace: (<space>)+> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> SPECIAL : { -<singleLineCStyleComment: "//" (~["\n","\r"])* <newline>> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> SPECIAL : { -<singleLineCpslStyleComment: ";;" (~["\n","\r"])* <newline>> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> SPECIAL : { -<commentStart: "/*" | "#|"> : WITHIN_COMMENT -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<WITHIN_COMMENT> MORE : { -<commentChars: ~[]> -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<WITHIN_COMMENT> SPECIAL : { -<commentEnd: "*/" | "|#"> : DEFAULT -} - - </PRE> - </TD> - </TR> - <!-- Token --> - <TR> - <TD> - <PRE> -<DEFAULT> TOKEN : { -<other: ~[]> -} - - </PRE> - </TD> - </TR> -</TABLE> -<H2 ALIGN=CENTER>NON-TERMINALS</H2> -<TABLE> - <!-- Special token --> - <TR> - <TD> -<PRE> -////////////// -// the grammar -////////////// -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">_MultiPhaseTransducer</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE>( <multiphase> <ident> )? ( ( ( <A HREF="#prod2">JavaImportBlock</A> ) ( ( <A HREF="#prod3">ControllerStartedBlock</A> ) | ( <A HREF="#prod4">ControllerFinishedBlock</A> ) | ( <A HREF="#prod5">ControllerAbortedBlock</A> ) )* ( <A HREF="#prod6">SinglePhaseTransducer</A> )+ ) | ( <phases> ( <path> )+ ) ) <EOF></TD> -</TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// _MultiPhaseTransducer -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">SinglePhaseTransducer</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE><phase> <ident> ( ( <input> ( ( <ident> | <string> ) )* ) | ( <option> ( <ident> <assign> ( <ident> | <bool> ) )* ) )* ( ( <A HREF="#prod7">Rule</A> ) | <A HREF="#prod8">MacroDef</A> | <A HREF="#prod9">TemplateDef</A> )*</TD> -</TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// SinglePhaseTransducer - -// if there is a block, set the javaimports to the java block specified, -// otherwise set it to the default block -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">JavaImportBlock</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE>( <javaimport> <leftBrace> <A HREF="#prod10">ConsumeBlock</A> )?</TD> -</TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">ControllerStartedBlock</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE>( <controllerstarted> <leftBrace> <A HREF="#prod10">ConsumeBlock</A> )</TD> -</TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">ControllerFinishedBlock</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE>( <controllerfinished> <leftBrace> <A HREF="#prod10">ConsumeBlock</A> )</TD> -</TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">ControllerAbortedBlock</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE>( <controlleraborted> <leftBrace> <A HREF="#prod10">ConsumeBlock</A> )</TD> -</TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">Rule</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE><rule> <ident> ( <priority> <integer> )? <A HREF="#prod11">LeftHandSide</A> "-->" <A HREF="#prod12">RightHandSide</A></TD> -</TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// Rule -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">MacroDef</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE><macro> <ident> ( <A HREF="#prod13">PatternElement</A> | <A HREF="#prod14">Action</A> )</TD> -</TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// MacroDef -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">TemplateDef</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE><template> <ident> <assign> <A HREF="#prod15">AttrVal</A></TD> -</TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// TemplateDef -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">LeftHandSide</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod16">ConstraintGroup</A></TD> -</TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// LeftHandSide - - -// we pass the lhs down so we can add bindings in CPEs, and the cg -// so we can add PEs and create disjunctions here -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">ConstraintGroup</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod13">PatternElement</A> )+ ( <bar> ( <A HREF="#prod13">PatternElement</A> )+ )*</TD> -</TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// ConstraintGroup -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">PatternElement</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> -<TD ALIGN=LEFT VALIGN=BASELINE>( <ident> | <A HREF="#prod17">BasicPatternElement</A> | <A HREF="#prod18">ComplexPatternElement</A> )</TD> -</TR> - <!-- Special token --> - <TR> - <TD> -<PRE> -// PatternElement -</PRE> - </TD> - </TR> -<TR> -<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">BasicPatternElement</A></TD> -<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ GATE-cvs mailing list GATE-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gate-cvs