| MetaFuncDecl of arity * meta_name (* name *)
| MetaLocalFuncDecl of arity * meta_name (* name *)
| MetaPosDecl of arity * meta_name (* name *)
+ | MetaAnalysisDecl of string * meta_name (* name *)
| MetaDeclarerDecl of arity * meta_name (* name *)
| MetaIteratorDecl of arity * meta_name (* name *)
| MetaId of meta_name mcode * idconstraint * keep_binding * inherited
| MetaFunc of meta_name mcode * idconstraint * keep_binding * inherited
| MetaLocalFunc of meta_name mcode * idconstraint * keep_binding * inherited
+ | AsIdent of ident * ident (* as ident, always metavar *)
| DisjId of ident list
| OptIdent of ident
and binaryOp = Arith of arithOp | Logical of logicalOp
and arithOp =
- Plus | Minus | Mul | Div | Mod | DecLeft | DecRight | And | Or | Xor
+ Plus | Minus | Mul | Div | Mod | DecLeft | DecRight | And | Or | Xor | Min | Max
and logicalOp = Inf | Sup | InfEq | SupEq | Eq | NotEq | AndLog | OrLog
and constant =
| MetaParam of meta_name mcode * keep_binding * inherited
| MetaParamList of meta_name mcode * listlen * keep_binding * inherited
+ | AsParam of parameterTypeDef * expression (* expr, always metavar *)
+
| PComma of string mcode
| Pdots of string mcode (* ... *)
expression * string mcode (* ) *) *
string mcode (* ; *)
| ForHeader of string mcode (* for *) * string mcode (* ( *) *
- expression option * string mcode (*;*) *
+ forinfo *
expression option * string mcode (*;*) *
expression option * string mcode (* ) *)
| IteratorHeader of ident (* name *) * string mcode (* ( *) *
| Default of string mcode (* default *) * string mcode (*:*)
| DisjRuleElem of rule_elem list
+and forinfo =
+ ForExp of expression option * string mcode (*;*)
+ | ForDecl of mcodekind (* before the decl *) *
+ bool (* true if all minus *) * declaration
+
and fninfo =
FStorage of storage mcode
| FType of fullType
| IncFileTag of inc_file
| Rule_elemTag of rule_elem
| StatementTag of statement
+ | ForInfoTag of forinfo
| CaseLineTag of case_line
| ConstVolTag of const_vol
| Token of string * info option