event_onkey : ONKEY key_do_sl atline commands_as_list {$$=new_event(EVENT_KEY_PRESS, $2,$4,$3); } | ON_ANY_KEY atline commands_as_list {$$=new_event(EVENT_ANYKEY_PRESS, NULL,$3,$2); } ; event_action : KW_ON KW_ACTION identifier atline commands_as_list { //str actionName; //str_list *key_list; struct s_onaction *oa; oa=malloc(sizeof( struct s_onaction )); oa->key_list=0; oa->actionName=strdup($3); $$=new_event(EVENT_ON_ACTION, (void *)oa,$5,$4); } | KW_ON KW_ACTION identifier KW_KEY key_do_sl atline commands_as_list { //str actionName; //str_list *key_list; struct s_onaction *oa; oa=malloc(sizeof( struct s_onaction )); oa->key_list=$5; oa->actionName=strdup($3); $$=new_event(EVENT_ON_ACTION, (void *)oa,$7,$6); } ; event_timer : KW_ON KW_IDLE idle_time atline commands_as_list {$$=new_event(EVENT_ON_IDLE, (void *)$3,$5, $4); } | KW_ON INTERVAL idle_time atline commands_as_list {$$=new_event(EVENT_ON_INTERVAL, (void *)$3,$5,$4); } ; event_field: BEFFIELD bef_field_list_as_struct atline commands_as_list {$$=new_event(EVENT_BEFORE_FIELD, (void *)$2,$4,$3); } | AFTFIELD aft_field_list_as_struct atline commands_as_list {$$=new_event(EVENT_AFTER_FIELD, (void *)$2,$4,$3); } | ON_CHANGE aft_field_list_as_struct atline commands_as_list {$$=new_event(EVENT_ON_CHANGE, (void *)$2,$4,$3); } ; event_input: AFTINP atline commands_as_list {$$=new_event(EVENT_AFTER_INPUT, NULL,$3,$2); } | BEFINP atline commands_as_list {$$=new_event(EVENT_BEFORE_INPUT, NULL,$3,$2); } | event_field {$$=$1;} | event_timer {$$=$1;} | event_action {$$=$1;} | event_onkey {$$=$1;} ; event_prompt: event_onkey {$$=$1;} | event_timer {$$=$1;} | event_action {$$=$1;} ; event_any_array: AFTROW atline commands_as_list {$$=new_event(EVENT_AFT_ROW, NULL,$3,$2); } | BEFROW atline commands_as_list {$$=new_event(EVENT_BEF_ROW, NULL,$3,$2); } ; event_iarray: BEFORE_DELETE atline commands_as_list {$$=new_event(EVENT_BEFORE_DELETE, NULL,$3,$2); } | BEFORE_INSERT atline commands_as_list {$$=new_event(EVENT_BEFORE_INSERT, NULL,$3,$2); } | BEFORE_INSERT_DELETE atline commands_as_list {$$=new_event(EVENT_BEFORE_INSERT_DELETE, NULL,$3,$2); } | AFTER_INSERT_DELETE atline commands_as_list {$$=new_event(EVENT_AFTER_INSERT_DELETE, NULL,$3,$2); } | AFTER_DELETE atline commands_as_list {$$=new_event(EVENT_AFTER_DELETE, NULL,$3,$2); } | AFTER_INSERT atline commands_as_list {$$=new_event(EVENT_AFTER_INSERT, NULL,$3,$2); } | AFTINP atline commands_as_list {$$=new_event(EVENT_AFTER_INPUT, NULL,$3,$2); } | BEFINP atline commands_as_list {$$=new_event(EVENT_BEFORE_INPUT, NULL,$3,$2); } | event_any_array {$$=$1;} | event_field {$$=$1;} | event_timer {$$=$1;} | event_action {$$=$1;} | event_onkey {$$=$1;} ; event_darray: AFTER_DISPLAY atline commands_as_list {$$=new_event(EVENT_AFTER_DISPLAY, NULL,$3,$2); } | BEFORE_DISPLAY atline commands_as_list {$$=new_event(EVENT_BEFORE_DISPLAY, NULL,$3,$2); } | event_any_array {$$=$1;} | event_timer {$$=$1;} | event_action {$$=$1;} | event_onkey {$$=$1;} ; event_menu: BEFORE_MENU atline commands_as_list {$$=new_event(EVENT_BEFORE_MENU, NULL,$3,$2); } | COMMAND opt_key menu_opt_name menu_optional_desc opt_help_no_i atline commands_as_list { $$=new_event(EVENT_MENU_COMMAND, (void *)new_menu_option($2,$3,$4,$5),$7,$6); } | COMMAND opt_key opt_help_no_i atline commands_as_list { $$=new_event(EVENT_MENU_COMMAND, (void *)new_menu_option($2,0,0,$3),$5,$4); } | event_timer {$$=$1;} | event_action {$$=$1;} ; event_construct: BEFCONSTRUCT atline commands_as_list {$$=new_event(EVENT_BEFORE_CONSTRUCT, NULL,$3,$2); } | AFTCONSTRUCT atline commands_as_list {$$=new_event(EVENT_AFTER_CONSTRUCT, NULL,$3,$2); } | event_field {$$=$1;} | event_timer {$$=$1;} | event_action {$$=$1;} | event_onkey {$$=$1;} ; events_prompt: event_prompt { $$=malloc(sizeof(on_events)); $$->event.event_len=1; $$->event.event_val=malloc(sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$1; } | events_prompt event_prompt { $$=$1; $$->event.event_len=$1->event.event_len+1; $$->event.event_val=realloc($1->event.event_val, sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$2; } ; events_menu: event_menu { $$=malloc(sizeof(on_events)); $$->event.event_len=1; $$->event.event_val=malloc(sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$1; } | events_menu event_menu { $$=$1; $$->event.event_len=$1->event.event_len+1; $$->event.event_val=realloc($1->event.event_val, sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$2; } ; events_iarray: event_iarray { $$=malloc(sizeof(on_events)); $$->event.event_len=1; $$->event.event_val=malloc(sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$1; } | events_iarray event_iarray { $$=$1; $$->event.event_len=$1->event.event_len+1; $$->event.event_val=realloc($1->event.event_val, sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$2; } ; events_darray: event_darray { $$=malloc(sizeof(on_events)); $$->event.event_len=1; $$->event.event_val=malloc(sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$1; } | events_darray event_darray { $$=$1; $$->event.event_len=$1->event.event_len+1; $$->event.event_val=realloc($1->event.event_val, sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$2; } ; events_input: event_input { $$=malloc(sizeof(on_events)); $$->event.event_len=1; $$->event.event_val=malloc(sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$1; } | events_input event_input { $$=$1; $$->event.event_len=$1->event.event_len+1; $$->event.event_val=realloc($1->event.event_val, sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$2; } ; events_construct: event_construct { $$=malloc(sizeof(on_events)); $$->event.event_len=1; $$->event.event_val=malloc(sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$1; } | events_construct event_construct { $$=$1; $$->event.event_len=$1->event.event_len+1; $$->event.event_val=realloc($1->event.event_val, sizeof($$->event.event_val[0]) * $$->event.event_len); $$->event.event_val[$$->event.event_len-1]=$2; } ;