diff -r f9e001952488 -r 3af0b849b9c6 tests/syntax/sfc/sfc.txt --- /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