- py=pure_ident TShOp TRuleName TDot cocci=pure_ident TMPtVirg
- { let mv = Parse_aux.lookup $3 (P.id2name cocci) in
- (P.id2name py, ($3, P.id2name cocci), mv) }
- | py=pure_ident TShOp TVirtual TDot cocci=pure_ident TMPtVirg
- { let name = ("virtual", P.id2name cocci) in
- let mv = Ast.MetaIdDecl(Ast.NONE,name) in
- (P.id2name py, name, mv) }
+ py=pure_ident script_name_decl
+ { let (nm,mv) = $2 in
+ ((Some (P.id2name py), None), nm, mv) }
+ | TOPar TUnderscore TComma ast=pure_ident TCPar script_name_decl
+ { let (nm,mv) = $6 in
+ ((None, Some (P.id2name ast)), nm, mv) }
+ | TOPar str=pure_ident TComma TUnderscore TCPar script_name_decl
+ { let (nm,mv) = $6 in
+ ((Some (P.id2name str), None), nm, mv) }
+ | TOPar str=pure_ident TComma ast=pure_ident TCPar script_name_decl
+ { let (nm,mv) = $6 in
+ ((Some (P.id2name str), Some (P.id2name ast)), nm, mv) }
+
+script_name_decl:
+ TShOp TRuleName TDot cocci=pure_ident TMPtVirg
+ { let nm = P.id2name cocci in
+ let mv = Parse_aux.lookup $2 nm in
+ (($2, nm), mv) }
+ | TShOp TVirtual TDot cocci=pure_ident TMPtVirg
+ { let nm = P.id2name cocci in
+ let name = ("virtual", nm) in
+ let mv = Ast.MetaIdDecl(Ast.NONE,name) in
+ (name,mv) }