+
+fullsigtype: PRIVATE TOKEN sigtype {
+ if(strcmp($<id>2,"first")==0)
+ $<sigtype>$ = PRIVATE_SIGNAL_FIRST_METHOD;
+ else if(strcmp($<id>2,"last")==0)
+ $<sigtype>$ = PRIVATE_SIGNAL_LAST_METHOD;
+ else {
+ yyerror(_("signal must be 'first' or 'last'"));
+ g_free($<id>2);
+ YYERROR;
+ }
+ g_free($<id>2);
+ }
+ | TOKEN PRIVATE sigtype {
+ if(strcmp($<id>1,"first")==0)
+ $<sigtype>$ = PRIVATE_SIGNAL_FIRST_METHOD;
+ else if(strcmp($<id>1,"last")==0)
+ $<sigtype>$ = PRIVATE_SIGNAL_LAST_METHOD;
+ else {
+ yyerror(_("signal must be 'first' or 'last'"));
+ g_free($<id>1);
+ YYERROR;
+ }
+ g_free($<id>1);
+ }
+ | PRIVATE sigtype {
+ $<sigtype>$ = PRIVATE_SIGNAL_LAST_METHOD;
+ }
+ | TOKEN sigtype {
+ if(strcmp($<id>1,"first")==0)
+ $<sigtype>$ = SIGNAL_FIRST_METHOD;
+ else if(strcmp($<id>1,"last")==0)
+ $<sigtype>$ = SIGNAL_LAST_METHOD;
+ else {
+ yyerror(_("signal must be 'first' or 'last'"));
+ g_free($<id>1);
+ YYERROR;
+ }
+ g_free($<id>1);
+ }
+ | sigtype {
+ $<sigtype>$ = SIGNAL_LAST_METHOD;
+ }
+ ;