home *** CD-ROM | disk | FTP | other *** search
- /* $Header: test.trans,v 0.2 88/09/19 12:58:29 nhall Exp $
- */
- *PROTOCOL test
-
- *INCLUDE
-
- {
- #include "test_def.h"
- }
-
- *PCB test_pcbstruct SYNONYM P
-
- *STATES
-
- STATE_A
- STATE_B
- STATE_C
- ALL_STATES = [STATE_A, STATE_B, STATE_C]
-
- *EVENTS { int ev_all; } SYNONYM E
-
- EV_1 { char *ev1_char; }
- EV_2 { int ev2_int; char ev2_char; }
- EV_3
- EV_4 { struct blah *ev4_blahptr;
- unsigned int ev4_uint;
- int ev4_int;
- }
-
- *TRANSITIONS
-
- SAME <== [ STATE_A, STATE_B ] [ EV_1, EV_2, EV_3 ]
- ( $E.ev_all > 0 )
- {
- if( $P.test_state == STATE_A )
- printf("state is STATE_A\n");
- else
- printf("state is STATE_B\n");
- printf("action first transition\n");
- }
-
- ;
- STATE_C <== [ STATE_A, STATE_B ] [ EV_1, EV_2, EV_3 ]
- DEFAULT
- {
- printf("default - transition 2\n");
- MACRO1( $P.test_pcbfield );
- }
- ;
-
- STATE_C <== [ STATE_A, STATE_B ] EV_4
- ( $$.ev4_blahptr->blahfield & 0x1 )
- NULLACTION
- ;
-
- STATE_C <== ALL_STATES EV_4
- DEFAULT
- {
- printf("default - transition 4\n");
- printf("pcb is 0x%x, event is 0x%x \n", $P, $E);
- printf("ev4 values are : blahptr 0x%x uint 0x%x int 0x%x\n",
- $$.ev4_blahptr, $$.ev4_uint, $$.ev4_int);
- }
- ;
-