Author: pkluegl Date: Wed Jul 31 10:58:42 2013 New Revision: 1508807 URL: http://svn.apache.org/r1508807 Log: UIMA-3115 - fixed editor support for inlined rules
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/formatter/RutaFormattedPrinter.java uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ComposedRuleElement.java uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRuleElement.java Modified: uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/formatter/RutaFormattedPrinter.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/formatter/RutaFormattedPrinter.java?rev=1508807&r1=1508806&r2=1508807&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/formatter/RutaFormattedPrinter.java (original) +++ uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/formatter/RutaFormattedPrinter.java Wed Jul 31 10:58:42 2013 @@ -603,8 +603,9 @@ public class RutaFormattedPrinter extend * @param ruleEl * @param conditions * @param actions + * @throws Exception */ - private void appendRuleElement(RutaRuleElement ruleEl) { + private void appendRuleElement(RutaRuleElement ruleEl) throws Exception { // if (ruleEl instanceof ComposedRuleElement) { // ComposedRuleElement cre = (ComposedRuleElement) ruleEl; // List<Expression> elements = cre.getElements(); @@ -689,6 +690,18 @@ public class RutaFormattedPrinter extend traverseAstNodes(actions); } append(CURLY_CLOSE); + if(ruleEl.getInlinedRules()!= null && !ruleEl.getInlinedRules().isEmpty()) { + String inlineMode = ruleEl.getInlineMode(); + append(inlineMode); + append(CURLY_OPEN); + indentLevel++; + List<RutaRule> inlinedRules = ruleEl.getInlinedRules(); + for (RutaRule rutaRule : inlinedRules) { + visit(rutaRule); + } + indentLevel--; + appendIntoNewLine(CURLY_CLOSE); + } } /** Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g?rev=1508807&r1=1508806&r2=1508807&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g (original) +++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g Wed Jul 31 10:58:42 2013 @@ -650,8 +650,8 @@ List<RutaRule> innerRules = new ArrayLis | re3 = ruleElementComposed {re = re3;} | re4 = ruleElementWildCard {re = re4;} ) - ((THEN | THEN2) LCURLY (rule = simpleStatement {innerRules.add(rule);})+ - RCURLY {re.setInlinedRules(innerRules);})? + (t = (THEN | THEN2) LCURLY (rule = simpleStatement {innerRules.add(rule);})+ + RCURLY {re.setInlinedRules(innerRules);re.setInlineMode(t == null ? null : t.getText());})? ; ruleElementWildCard returns [RutaRuleElement re = null] Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ComposedRuleElement.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ComposedRuleElement.java?rev=1508807&r1=1508806&r2=1508807&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ComposedRuleElement.java (original) +++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ComposedRuleElement.java Wed Jul 31 10:58:42 2013 @@ -68,6 +68,11 @@ public class ComposedRuleElement extends action.traverse(visitor); } } + if(inlinedRules != null) { + for (RutaRule rule : inlinedRules) { + rule.traverse(visitor); + } + } } } Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRuleElement.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRuleElement.java?rev=1508807&r1=1508806&r2=1508807&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRuleElement.java (original) +++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRuleElement.java Wed Jul 31 10:58:42 2013 @@ -35,7 +35,9 @@ public class RutaRuleElement extends Exp protected List<Expression> quantifierExpressions; - private List<RutaRule> inlinedRules; + protected List<RutaRule> inlinedRules; + + private String inlineMode; // TODO to be removed public RutaRuleElement(int start, int end) { @@ -123,7 +125,19 @@ public class RutaRuleElement extends Exp } public void setInlinedRules(List<RutaRule> inlinedRules) { + if(inlinedRules != null && !inlinedRules.isEmpty()) { + RutaRule last = inlinedRules.get(inlinedRules.size()-1); + setEnd(last.sourceEnd()); + } this.inlinedRules = inlinedRules; } + public void setInlineMode(String mode) { + this.inlineMode = mode; + } + + public String getInlineMode() { + return inlineMode; + } + }