You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2007/12/15 02:15:31 UTC
svn commit: r604365 - in /ode/sandbox/simpel/src:
main/antlr/org/apache/ode/simpel/antlr/SimPEL.g
main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g
test/java/org/apache/ode/simpel/SimPELCompilerTest.java
test/resources/compile-tests-ok.simpel
Author: mriou
Date: Fri Dec 14 17:15:30 2007
New Revision: 604365
URL: http://svn.apache.org/viewvc?rev=604365&view=rev
Log:
Flow join and signal quicky.
Modified:
ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g
ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g
ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java
ode/sandbox/simpel/src/test/resources/compile-tests-ok.simpel
Modified: ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g
URL: http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g?rev=604365&r1=604364&r2=604365&view=diff
==============================================================================
--- ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g (original)
+++ ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g Fri Dec 14 17:15:30 2007
@@ -9,6 +9,7 @@
PROCESS; PICK; SEQUENCE; FLOW; IF; ELSEIF; ELSE; WHILE; UNTIL; FOREACH; FORALL; INVOKE;
RECEIVE; REPLY; ASSIGN; THROW; WAIT; EXIT; TIMEOUT; TRY; CATCH; CATCH_ALL; SCOPE; EVENT;
ALARM; COMPENSATION; COMPENSATE; CORRELATION; CORR_MAP; PARTNERLINK; VARIABLE; BLOCK_PARAM;
+ SIGNAL; JOIN;
EXPR; EXT_EXPR; XML_LITERAL; CALL;
}
@parser::header {
@@ -93,7 +94,7 @@
process_stmt
: (pick | flow | if_ex | while_ex | until_ex | foreach | forall | try_ex | scope_ex
- | receive | ((invoke | reply | assign | throw_ex | wait_ex | exit
+ | receive | ((invoke | reply | assign | throw_ex | wait_ex | exit | signal | join
| variables) SEMI!) )+;
block : '{' process_stmt '}' -> ^(SEQUENCE process_stmt);
@@ -105,8 +106,9 @@
timeout : 'timeout' '(' expr ')' block -> ^(TIMEOUT expr block);
// TODO links
-flow : 'parrallel' '{' exprs+=process_stmt '}' ('and' '{' exprs+=process_stmt '}')*
- -> ^(FLOW $exprs);
+flow : 'parrallel' '{' exprs+=process_stmt '}' ('and' '{' exprs+=process_stmt '}')* -> ^(FLOW $exprs);
+signal : 'signal' '('ID (',' expr)? ')' -> ^(SIGNAL ID expr?);
+join : 'join' '(' k+=ID (',' k+=ID)* (',' expr)? ')' -> ^(JOIN $k expr?);
if_ex : 'if' '(' expr ')' block
('else if' '(' expr ')' block)?
Modified: ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g
URL: http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g?rev=604365&r1=604364&r2=604365&view=diff
==============================================================================
--- ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g (original)
+++ ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g Fri Dec 14 17:15:30 2007
@@ -51,7 +51,7 @@
process_stmt
: (pick | sequence | flow | if_ex | while_ex | until_ex | foreach | forall | try_ex | scope_ex
- | invoke | receive | reply | assign | throw_ex | wait_ex | exit
+ | invoke | receive | reply | assign | throw_ex | wait_ex | exit | signal | join
| variable)+;
block : ^(SEQUENCE process_stmt);
@@ -66,6 +66,9 @@
// TODO links
flow : ^(FLOW process_stmt);
+signal : ^(SIGNAL ID expr?);
+join : ^(JOIN ID* expr?);
+
if_ex : ^(IF expr block ^(ELSEIF expr block) ^(ELSE expr block));
Modified: ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java
URL: http://svn.apache.org/viewvc/ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java?rev=604365&r1=604364&r2=604365&view=diff
==============================================================================
--- ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java (original)
+++ ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java Fri Dec 14 17:15:30 2007
@@ -76,7 +76,7 @@
System.out.println(allErrors.toString());
fail("There were failures.");
} else {
- System.out.println("Compiled " + testCount + " processes correctly.");
+ System.out.println("\nCompiled " + testCount + " processes successfully.");
}
}
Modified: ode/sandbox/simpel/src/test/resources/compile-tests-ok.simpel
URL: http://svn.apache.org/viewvc/ode/sandbox/simpel/src/test/resources/compile-tests-ok.simpel?rev=604365&r1=604364&r2=604365&view=diff
==============================================================================
--- ode/sandbox/simpel/src/test/resources/compile-tests-ok.simpel (original)
+++ ode/sandbox/simpel/src/test/resources/compile-tests-ok.simpel Fri Dec 14 17:15:30 2007
@@ -192,3 +192,33 @@
receive(my_pl, corr_op, { orderIdFromShippment: oid, shipIdFromShippment: shipId });
}
+#=============================================================
+# Basic flow
+#
+
+process BasicFlow {
+ orderMsg = receive(my_pl, start_op);
+ parrallel {
+ invoke(partner1_pl, partner1_op, orderMsg);
+ } and {
+ invoke(partner2_pl, partner2_op, orderMsg);
+ }
+}
+
+#=============================================================
+# Flow with signals
+#
+
+process BasicFlow {
+ orderMsg = receive(my_pl, start_op);
+ parrallel {
+ invoke(partner1_pl, partner1_op, orderMsg);
+ signal(branch1);
+ } and {
+ invoke(partner2_pl, partner2_op, orderMsg);
+ signal(branch2);
+ } and {
+ join(branch1, branch2, [$branch1 and $branch2]);
+ invoke(partner_done_pl, partner_done_op, orderMsg);
+ }
+}
\ No newline at end of file