--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/syntax/sfc/sfc.txt Sat Feb 09 08:59:05 2008 +0100
@@ -0,0 +1,164 @@
+PROGRAM MAIN_TEST
+ VAR
+ QX1 AT %QX1 : BOOL := 1;
+ QX2 AT %QX2 : BOOL := 0;
+ QX3 AT %QX3 : BOOL;
+ IX1 AT %IX1 : BOOL;
+ IX2 AT %IX2 : BOOL;
+ IX3 AT %IX3 : BOOL;
+ END_VAR
+
+ INITIAL_STEP GO:
+ END_STEP
+
+ TRANSITION FROM GO TO STEP1
+ := IX1 = FALSE;
+ END_TRANSITION
+
+ STEP STEP1:
+ ONSTEP1(N);
+ END_STEP
+
+ ACTION ONSTEP1:
+ QX1 := TRUE;
+ QX2 := TRUE;
+ END_ACTION
+
+ TRANSITION FROM STEP1 TO STEP2
+ := IX2 = TRUE;
+ END_TRANSITION
+
+ STEP STEP2:
+ INLINE1(P);
+ END_STEP
+
+ ACTION INLINE1:
+ QX1 := QX2 XOR QX1; QX2 := NOT QX2;
+ END_ACTION
+
+ TRANSITION FROM STEP2 TO A1
+ := QX1 = FALSE AND QX2 = FALSE;
+ END_TRANSITION
+
+ STEP A1:
+ INLINE2(N);
+ END_STEP
+
+ ACTION INLINE2:
+ IX1 := TRUE;
+ END_ACTION
+
+ TRANSITION FROM A1 TO STEP2
+ := IX1 = TRUE;
+ END_TRANSITION
+
+ TRANSITION FROM STEP2 TO (D1, D2, D3)
+ := QX1 = TRUE AND QX2 = TRUE;
+ END_TRANSITION
+
+ STEP D1:
+ INLINE5(N);
+ END_STEP
+
+ ACTION INLINE5:
+ QX1 := FALSE;
+ END_ACTION
+
+ TRANSITION FROM D1 TO E1
+ := NOT ( QX1 OR QX2 OR QX3 );
+ END_TRANSITION
+
+ STEP E1:
+ INLINE8(N);
+ END_STEP
+
+ ACTION INLINE8:
+ QX1 := TRUE;
+ END_ACTION
+
+ TRANSITION FROM (E1, E2, E3) TO GO
+ := QX1 AND QX2 AND QX3;
+ END_TRANSITION
+
+ STEP D2:
+ INLINE6(N);
+ END_STEP
+
+ ACTION INLINE6:
+ QX2 := FALSE;
+ END_ACTION
+
+ TRANSITION FROM D2 TO E2
+ := NOT ( QX1 OR QX2 OR QX3 );
+ END_TRANSITION
+
+ STEP E2:
+ INLINE9(N);
+ END_STEP
+
+ ACTION INLINE9:
+ QX2 := TRUE;
+ END_ACTION
+
+ STEP D3:
+ INLINE7(N);
+ END_STEP
+
+ ACTION INLINE7:
+ QX2 := FALSE;
+ END_ACTION
+
+ TRANSITION FROM D3 TO E3
+ := NOT ( QX1 OR QX2 OR QX3 );
+ END_TRANSITION
+
+ STEP E3:
+ INLINE10(N);
+ END_STEP
+
+ ACTION INLINE10:
+ QX3 := TRUE;
+ END_ACTION
+
+ TRANSITION FROM STEP2 TO A3
+ := QX1 = TRUE AND QX2 = FALSE;
+ END_TRANSITION
+
+ STEP A3:
+ INLINE4(N);
+ END_STEP
+
+ ACTION INLINE4:
+ IX1 := TRUE;
+ END_ACTION
+
+ TRANSITION FROM A3 TO STEP2
+ := IX1 = TRUE;
+ END_TRANSITION
+
+ TRANSITION FROM STEP2 TO A2
+ := QX1 = FALSE AND QX2 = TRUE;
+ END_TRANSITION
+
+ STEP A2:
+ INLINE3(N);
+ END_STEP
+
+ ACTION INLINE3:
+ IX1 := FALSE;
+ END_ACTION
+
+ TRANSITION FROM A2 TO STEP2
+ := IX1 = FALSE;
+ END_TRANSITION
+
+END_PROGRAM
+
+
+CONFIGURATION STD_CONF
+
+ RESOURCE STD_RESSOURCE ON BEREMIZ
+ TASK STD_TASK(INTERVAL := t#100ms,PRIORITY := 0);
+ PROGRAM MAIN_INSTANCE : MAIN_TEST;
+ END_RESOURCE
+END_CONFIGURATION