You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2012/06/17 23:01:44 UTC
svn commit: r1351159 - in /ant/sandbox/antdsl:
org.apache.ant.antdsl/src/org/apache/ant/antdsl/
org.apache.ant.antdsl/src/org/apache/ant/antdsl/xtext/ test/
Author: hibou
Date: Sun Jun 17 21:01:44 2012
New Revision: 1351159
URL: http://svn.apache.org/viewvc?rev=1351159&view=rev
Log:
Better syntax for the roperty and reference assignment
Added:
ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/RefTask.java (with props)
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
ant/sandbox/antdsl/test/build.ant
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=1351159&r1=1351158&r2=1351159&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 Sun Jun 17 21:01:44 2012
@@ -95,7 +95,7 @@ targetList returns [List<String> tl = ne
(',' n=NAME { tl.add($n.text); } )*;
task returns [Task t = null]:
- pa=propertyAssignment {t=pa;}
+ a=assignment {t=a;}
| ie=innerElement {t=projectHelper.mapUnknown(project, context, ie, false);}
| b=branch {t=b;}
;
@@ -118,10 +118,19 @@ innerElement returns [InnerElement ie =
'(' args=arguments? { ie.attributes = args; } ')'
ies=innerElements? { ie.children = ies; };
+assignment returns [Task assign]:
+ p=propertyAssignment { assign = p; } | r=refAssignment { assign = r; } ;
+
propertyAssignment returns [Property p = new Property()]:
+ 'prop'
{ projectHelper.mapCommonTask(project, context, p); }
NAME { p.setName($NAME.text); } '=' STRING { p.setValue(readString($STRING.text)); } ;
+refAssignment returns [RefTask r = new RefTask()]:
+ 'ref'
+ { projectHelper.mapCommonTask(project, context, r); }
+ NAME { r.setName($NAME.text); } '=' STRING { r.setValue(readString($STRING.text)); } ;
+
branch returns [IfTask if_ = new IfTask()]:
{ projectHelper.mapCommonTask(project, context, if_); }
main=conditionedTasks { if_.setMain(main); }
Added: ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/RefTask.java
URL: http://svn.apache.org/viewvc/ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/RefTask.java?rev=1351159&view=auto
==============================================================================
--- ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/RefTask.java (added)
+++ ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/RefTask.java Sun Jun 17 21:01:44 2012
@@ -0,0 +1,24 @@
+package org.apache.ant.antdsl;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+public class RefTask extends Task {
+
+ private String name;
+
+ private Object value;
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setValue(Object value) {
+ this.value = value;
+ }
+
+ @Override
+ public void execute() throws BuildException {
+ getProject().addReference(name, value);
+ }
+}
Propchange: ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/RefTask.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/RefTask.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id
Propchange: ant/sandbox/antdsl/org.apache.ant.antdsl/src/org/apache/ant/antdsl/RefTask.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
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=1351159&r1=1351158&r2=1351159&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 Sun Jun 17 21:01:44 2012
@@ -30,7 +30,7 @@ ETargetList:
names+=NAME (',' names+=NAME)*;
ETask:
- EPropertyAssignment | EInnerElement | EBranch;
+ EAssignment | EInnerElement | EBranch;
ENSName:
(namespace=NAME ':')? name=NAME;
@@ -47,8 +47,14 @@ EInnerElements:
EInnerElement:
name=ENSName '(' arguments=EArguments? ')' inners=EInnerElements?;
+EAssignment:
+ EPropertyAssignment | EReferenceAssignment;
+
EPropertyAssignment:
- name=NAME '=' value=EExpression;
+ 'prop' name=NAME '=' value=STRING;
+
+EReferenceAssignment:
+ 'ref' name=NAME '=' value=STRING;
EBranch:
if=EConditionedTasks ('else' elseif+=EConditionedTasks )* ('else' else=ETaskLists)?;
@@ -74,9 +80,6 @@ ETextAttribute:
EElementAttribute:
(optional ?= 'optional')? (implicit ?= 'implicit')? 'element' name=NAME;
-EExpression:
- STRING | PROPERTY;
-
terminal NAME:
('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'-'|'.'|'0'..'9')*;
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=1351159&r1=1351158&r2=1351159&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 Sun Jun 17 21:01:44 2012
@@ -11,6 +11,7 @@ import org.apache.ant.antdsl.AbstractAnt
import org.apache.ant.antdsl.AntDslContext;
import org.apache.ant.antdsl.IfTask;
import org.apache.ant.antdsl.IfTask.ConditionnalSequential;
+import org.apache.ant.antdsl.RefTask;
import org.apache.ant.antdsl.xtext.antdsl.EArgAttribute;
import org.apache.ant.antdsl.xtext.antdsl.EArgument;
import org.apache.ant.antdsl.xtext.antdsl.EArguments;
@@ -26,6 +27,7 @@ import org.apache.ant.antdsl.xtext.antds
import org.apache.ant.antdsl.xtext.antdsl.ENamespace;
import org.apache.ant.antdsl.xtext.antdsl.EProject;
import org.apache.ant.antdsl.xtext.antdsl.EPropertyAssignment;
+import org.apache.ant.antdsl.xtext.antdsl.EReferenceAssignment;
import org.apache.ant.antdsl.xtext.antdsl.ETarget;
import org.apache.ant.antdsl.xtext.antdsl.ETargetList;
import org.apache.ant.antdsl.xtext.antdsl.ETask;
@@ -197,6 +199,14 @@ public class AntDslXTextProjectHelper ex
property.setValue(ePropertyAssignment.getValue());
return property;
}
+ if (eTask instanceof EReferenceAssignment) {
+ EReferenceAssignment eReferenceAssignment = (EReferenceAssignment) eTask;
+ RefTask ref = new RefTask();
+ mapCommonTask(project, context, ref);
+ ref.setName(eReferenceAssignment.getName());
+ ref.setValue(eReferenceAssignment.getValue());
+ return ref;
+ }
if (eTask instanceof EInnerElement) {
EInnerElement eInnerElement = (EInnerElement) eTask;
return mapUnknown(project, context, mapInnerElement(eInnerElement), false);
Modified: ant/sandbox/antdsl/test/build.ant
URL: http://svn.apache.org/viewvc/ant/sandbox/antdsl/test/build.ant?rev=1351159&r1=1351158&r2=1351159&view=diff
==============================================================================
--- ant/sandbox/antdsl/test/build.ant (original)
+++ ant/sandbox/antdsl/test/build.ant Sun Jun 17 21:01:44 2012
@@ -2,7 +2,7 @@ name : myproject
default : build
{
- foo = "hello world!"
+ prop foo = "hello world!"
echo(message="${foo}")
}