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;
+  }
+  
 }


Reply via email to