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);