Ast_cocci.seed * pure
| MetaFunc of Ast_cocci.meta_name mcode * Ast_cocci.idconstraint * pure
| MetaLocalFunc of Ast_cocci.meta_name mcode * Ast_cocci.idconstraint * pure
+ | AsIdent of ident * ident (* as ident, always metavar *)
| DisjId of string mcode * ident list *
string mcode list (* the |s *) * string mcode
| OptIdent of ident
string mcode (* while *) * string mcode (* ( *) *
expression * string mcode (* ) *) *
string mcode (* ; *)
- | For of string mcode (* for *) * string mcode (* ( *) *
- expression option * string mcode (*;*) *
+ | For of string mcode (* for *) * string mcode (* ( *) * forinfo *
expression option * string mcode (*;*) *
expression option * string mcode (* ) *) * statement *
(info * mcodekind) (* after info *)
| OptStm of statement
| UniqueStm of statement
+and base_forinfo =
+ ForExp of expression option * string mcode (*;*)
+ | ForDecl of (info * mcodekind) (* before the decl *) * declaration
+
+and forinfo = base_forinfo wrap
+
and fninfo =
FStorage of Ast_cocci.storage mcode
| FType of typeC
| InitTag of initialiser
| DeclTag of declaration
| StmtTag of statement
+ | ForInfoTag of forinfo
| CaseLineTag of case_line
| TopTag of top_level
| IsoWhenTag of Ast_cocci.when_modifier (*only for when code, in iso phase*)
val ini : initialiser -> anything
val decl : declaration -> anything
val stmt : statement -> anything
+val forinfo : forinfo -> anything
val case_line : case_line -> anything
val top : top_level -> anything