Author: hibou
Date: Wed Jun 20 14:03:31 2012
New Revision: 1352111

URL: http://svn.apache.org/viewvc?rev=1352111&view=rev
Log:
Add support of local variable

Modified:
    ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g
    
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext
    
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java

Modified: 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g
URL: 
http://svn.apache.org/viewvc/ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g?rev=1352111&r1=1352110&r2=1352111&view=diff
==============================================================================
--- ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g 
(original)
+++ ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/AntDSL.g 
Wed Jun 20 14:03:31 2012
@@ -136,7 +136,9 @@ innerElement returns [InnerElement ie = 
     (','? ies=innerElements)? { ie.children = ies; } ')';
 
 assignment returns [Task assign]:
-    p=propertyAssignment { assign = p; } | r=refAssignment { assign = r; } ;
+      p=propertyAssignment { assign = p; }
+    | r=refAssignment { assign = r; }
+    | l=localAssignment { assign = l; };
 
 propertyAssignment returns [AssignPropertyTask p = new AssignPropertyTask()]:
     'prop'
@@ -148,6 +150,11 @@ refAssignment returns [AssignReferenceTa
     { projectHelper.mapCommonTask(project, context, r); }
     NAME { r.setName($NAME.text); } '=' e=expr { r.setValue(e); } ;
 
+localAssignment returns [AssignLocalTask l = new AssignLocalTask()]:
+    'local'
+    { projectHelper.mapCommonTask(project, context, l); }
+    NAME { l.setName($NAME.text); } '=' e=expr { l.setValue(e); } ;
+
 branch returns [IfTask if_ = new IfTask()]:
     { projectHelper.mapCommonTask(project, context, if_); }
     main=conditionedTasks { if_.setMain(main); }

Modified: 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext
URL: 
http://svn.apache.org/viewvc/ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext?rev=1352111&r1=1352110&r2=1352111&view=diff
==============================================================================
--- 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext
 (original)
+++ 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDSL.xtext
 Wed Jun 20 14:03:31 2012
@@ -69,7 +69,7 @@ EInnerElement:
     name=ENSName '(' arguments=EArguments? (','? inners=EInnerElements)? ')';
 
 EAssignment:
-    EPropertyAssignment | EReferenceAssignment;
+    EPropertyAssignment | EReferenceAssignment | ELocalAssignment;
 
 EPropertyAssignment:
     'prop' name=NAME '=' value=EExpr;
@@ -77,6 +77,9 @@ EPropertyAssignment:
 EReferenceAssignment:
     'ref' name=NAME '=' value=EExpr;
 
+ELocalAssignment:
+    'local' name=NAME '=' value=EExpr;
+
 EBranch:
     if=EConditionedTasks ('else' elseif+=EConditionedTasks )* ('else' 
else=ETaskLists)?;
 

Modified: 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java
URL: 
http://svn.apache.org/viewvc/ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java?rev=1352111&r1=1352110&r2=1352111&view=diff
==============================================================================
--- 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java
 (original)
+++ 
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/AntDslXTextProjectHelper.java
 Wed Jun 20 14:03:31 2012
@@ -26,11 +26,12 @@ import java.util.List;
 
 import org.apache.ant.antdsl.AbstractAntDslProjectHelper;
 import org.apache.ant.antdsl.AntDslContext;
+import org.apache.ant.antdsl.AssignLocalTask;
 import org.apache.ant.antdsl.AssignPropertyTask;
+import org.apache.ant.antdsl.AssignReferenceTask;
 import org.apache.ant.antdsl.ExtensionPoint;
 import org.apache.ant.antdsl.IfTask;
 import org.apache.ant.antdsl.IfTask.ConditionnalSequential;
-import org.apache.ant.antdsl.AssignReferenceTask;
 import org.apache.ant.antdsl.Target;
 import org.apache.ant.antdsl.expr.AddAntExpression;
 import org.apache.ant.antdsl.expr.AntExpression;
@@ -57,6 +58,7 @@ import org.apache.ant.antdsl.xtext.antds
 import org.apache.ant.antdsl.xtext.antdsl.EFuncExpr;
 import org.apache.ant.antdsl.xtext.antdsl.EInnerElement;
 import org.apache.ant.antdsl.xtext.antdsl.EInnerElements;
+import org.apache.ant.antdsl.xtext.antdsl.ELocalAssignment;
 import org.apache.ant.antdsl.xtext.antdsl.EMacrodef;
 import org.apache.ant.antdsl.xtext.antdsl.EMultExpr;
 import org.apache.ant.antdsl.xtext.antdsl.ENamespace;
@@ -79,7 +81,6 @@ import org.apache.tools.ant.taskdefs.Mac
 import org.apache.tools.ant.taskdefs.MacroDef.NestedSequential;
 import org.apache.tools.ant.taskdefs.MacroDef.TemplateElement;
 import org.apache.tools.ant.taskdefs.MacroDef.Text;
-import org.apache.tools.ant.taskdefs.Property;
 import org.apache.tools.ant.taskdefs.Sequential;
 import org.apache.tools.ant.taskdefs.condition.And;
 import org.apache.tools.ant.taskdefs.condition.Condition;
@@ -252,6 +253,14 @@ public class AntDslXTextProjectHelper ex
             ref.setValue(mapExpr(project, context, 
eReferenceAssignment.getValue()));
             return ref;
         }
+        if (eTask instanceof ELocalAssignment) {
+            ELocalAssignment eLocalAssignment = (ELocalAssignment) eTask;
+            AssignLocalTask local = new AssignLocalTask();
+            mapCommonTask(project, context, local);
+            local.setName(eLocalAssignment.getName());
+            local.setValue(mapExpr(project, context, 
eLocalAssignment.getValue()));
+            return local;
+        }
         if (eTask instanceof EInnerElement) {
             EInnerElement eInnerElement = (EInnerElement) eTask;
             return mapUnknown(project, context, 
mapInnerElement(eInnerElement), false);


Reply via email to