whenever_signal_cmd : KW_WHENEVER_SIGNAL sigtype FCALL identifier { $$=new_whenever_signal_cmd($2,$4); } | KW_WHENEVER_SIGNAL sigtype KW_DEFAULT { $$=new_whenever_signal_cmd($2,""); } | KW_WHENEVER_SIGNAL sigtype KW_IGNORE { $$=new_whenever_signal_cmd($2,""); } ; sigtype : INT_VALUE{ $$=atol($1); if ($$<1 || $$>22) { a4gl_yyerror("Signal must be between 1 and 22"); } } | KW_SIGNAL_TOKEN { if (strcmp($1,"SIGUSR1") == 0){ $$=10; } if (strcmp($1,"SIGUSR2") == 0){ $$=12; } } ;