|
|
1.1 ! root 1: /* $Header: test.trans,v 0.2 88/09/19 12:58:29 nhall Exp $ ! 2: */ ! 3: *PROTOCOL test ! 4: ! 5: *INCLUDE ! 6: ! 7: { ! 8: #include "test_def.h" ! 9: } ! 10: ! 11: *PCB test_pcbstruct SYNONYM P ! 12: ! 13: *STATES ! 14: ! 15: STATE_A ! 16: STATE_B ! 17: STATE_C ! 18: ALL_STATES = [STATE_A, STATE_B, STATE_C] ! 19: ! 20: *EVENTS { int ev_all; } SYNONYM E ! 21: ! 22: EV_1 { char *ev1_char; } ! 23: EV_2 { int ev2_int; char ev2_char; } ! 24: EV_3 ! 25: EV_4 { struct blah *ev4_blahptr; ! 26: unsigned int ev4_uint; ! 27: int ev4_int; ! 28: } ! 29: ! 30: *TRANSITIONS ! 31: ! 32: SAME <== [ STATE_A, STATE_B ] [ EV_1, EV_2, EV_3 ] ! 33: ( $E.ev_all > 0 ) ! 34: { ! 35: if( $P.test_state == STATE_A ) ! 36: printf("state is STATE_A\n"); ! 37: else ! 38: printf("state is STATE_B\n"); ! 39: printf("action first transition\n"); ! 40: } ! 41: ! 42: ; ! 43: STATE_C <== [ STATE_A, STATE_B ] [ EV_1, EV_2, EV_3 ] ! 44: DEFAULT ! 45: { ! 46: printf("default - transition 2\n"); ! 47: MACRO1( $P.test_pcbfield ); ! 48: } ! 49: ; ! 50: ! 51: STATE_C <== [ STATE_A, STATE_B ] EV_4 ! 52: ( $$.ev4_blahptr->blahfield & 0x1 ) ! 53: NULLACTION ! 54: ; ! 55: ! 56: STATE_C <== ALL_STATES EV_4 ! 57: DEFAULT ! 58: { ! 59: printf("default - transition 4\n"); ! 60: printf("pcb is 0x%x, event is 0x%x \n", $P, $E); ! 61: printf("ev4 values are : blahptr 0x%x uint 0x%x int 0x%x\n", ! 62: $$.ev4_blahptr, $$.ev4_uint, $$.ev4_int); ! 63: } ! 64: ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.