package coccinelle
type added_string = Ast_cocci.added_string =
type info = Ast_cocci.info = {
line : int;
column : int;
strbef : (added_string * int * int) list;
straft : (added_string * int * int) list;
whitespace : string;
}
type script_position = string * line
type !'a wrap = 'a Ast_cocci.wrap = {
node : 'a;
node_line : line;
free_vars : meta_name list;
minus_free_vars : meta_name list;
minus_nc_free_vars : meta_name list;
fresh_vars : (meta_name * seed) list;
inherited : meta_name list;
positive_inherited_positions : meta_name list;
constraints : (meta_name * constraints) list;
saved_witness : meta_name list;
bef_aft : dots_bef_aft;
pos_info : meta_name mcode option;
true_if_test_exp : bool;
safe_for_multi_decls : Ast_cocci.safety;
iso_info : (string * anything) list;
}
and !'a befaft = 'a Ast_cocci.befaft =
and !'a replacement = 'a Ast_cocci.replacement =
| REPLACEMENT of 'a list list * count
| NOREPLACEMENT
and mcodekind = Ast_cocci.mcodekind =
and dots_bef_aft = Ast_cocci.dots_bef_aft =
and metavar = Ast_cocci.metavar =
| MetaMetaDecl of arity * meta_name
| MetaIdDecl of arity * meta_name
| MetaFreshIdDecl of meta_name * seed
| MetaTypeDecl of arity * meta_name
| MetaInitDecl of arity * meta_name
| MetaInitListDecl of arity * meta_name * list_len
| MetaListlenDecl of meta_name
| MetaParamDecl of arity * meta_name
| MetaParamListDecl of arity * meta_name * list_len
| MetaBinaryOperatorDecl of arity * meta_name
| MetaAssignmentOperatorDecl of arity * meta_name
| MetaConstDecl of arity * meta_name * fullType list option
| MetaErrDecl of arity * meta_name
| MetaExpDecl of arity * meta_name * fullType list option * list_len option
| MetaIdExpDecl of arity * meta_name * fullType list option
| MetaLocalIdExpDecl of arity * meta_name * fullType list option
| MetaGlobalIdExpDecl of arity * meta_name * fullType list option
| MetaExpListDecl of arity * meta_name * list_len
| MetaDeclDecl of arity * meta_name
| MetaFieldDecl of arity * meta_name
| MetaFieldListDecl of arity * meta_name * list_len
| MetaStmDecl of arity * meta_name
| MetaStmListDecl of arity * meta_name * list_len
| MetaDParamListDecl of arity * meta_name * list_len
| MetaFuncDecl of arity * meta_name
| MetaLocalFuncDecl of arity * meta_name
| MetaPosDecl of arity * meta_name
| MetaComDecl of arity * meta_name
| MetaFmtDecl of arity * meta_name
| MetaAttributeDecl of arity * meta_name
| MetaFragListDecl of arity * meta_name * list_len
| MetaAnalysisDecl of string * meta_name
| MetaDeclarerDecl of arity * meta_name
| MetaIteratorDecl of arity * meta_name
| MetaScriptDecl of metavar option ref * meta_name
and seed = Ast_cocci.seed =
| NoVal
| StringSeed of string
| ListSeed of seed_elem list
| ScriptSeed of script_constraint
and !'a dots = 'a list wrap
and base_ident = Ast_cocci.base_ident =
| Id of string mcode
| MetaId of meta_name mcode * constraints * keep_binding * inherited
| MetaFunc of meta_name mcode * constraints * keep_binding * inherited
| MetaLocalFunc of meta_name mcode * constraints * keep_binding * inherited
| AsIdent of ident * ident
| DisjId of ident list
| ConjId of ident list
| OptIdent of ident
and ident = base_ident wrap
and base_expression = Ast_cocci.base_expression =
| Ident of ident
| Constant of constant mcode
| StringConstant of string mcode * string_fragment dots * string mcode * Ast_cocci.isWchar
| FunCall of expression * string mcode * expression dots * string mcode
| Assignment of expression * assignOp * expression * bool
| Sequence of expression * string mcode * expression
| CondExpr of expression * string mcode * expression option * string mcode * expression
| Postfix of expression * fixOp mcode
| Infix of expression * fixOp mcode
| Unary of expression * unaryOp mcode
| Binary of expression * binaryOp * expression
| Nested of expression * binaryOp * expression
| ArrayAccess of expression * string mcode * expression * string mcode
| RecordAccess of expression * string mcode * ident
| RecordPtAccess of expression * string mcode * ident
| Cast of string mcode * fullType * attr list * string mcode * expression
| SizeOfExpr of string mcode * expression
| SizeOfType of string mcode * string mcode * fullType * string mcode
| TypeExp of fullType
| Paren of string mcode * expression * string mcode
| Constructor of string mcode * fullType * string mcode * initialiser
| MetaErr of meta_name mcode * constraints * keep_binding * inherited
| MetaExpr of meta_name mcode * constraints * keep_binding * fullType list option * form * inherited * listlen option
| MetaExprList of meta_name mcode * listlen * constraints * keep_binding * inherited
| AsExpr of expression * expression
| AsSExpr of expression * rule_elem
| EComma of string mcode
| DisjExpr of expression list
| ConjExpr of expression list
| NestExpr of string mcode * expression dots * string mcode * expression option * multi
| Edots of string mcode * expression option
| OptExp of expression
and !'a generic_constraints = 'a Ast_cocci.generic_constraints =
| CstrFalse
| CstrTrue
| CstrAnd of 'a generic_constraints list
| CstrOr of 'a generic_constraints list
| CstrNot of 'a generic_constraints
| CstrConstant of constant_constraint
| CstrOperator of operator_constraint
| CstrMeta_name of meta_name
| CstrRegexp of string * Regexp.regexp
| CstrScript of bool * script_constraint
| CstrExpr of 'a
| CstrSub of meta_name list
| CstrType of fullType
and constant_constraint = Ast_cocci.constant_constraint =
| CstrInt of int_constraint
| CstrString of string
and int_constraint = Ast_cocci.int_constraint =
and operator_constraint = Ast_cocci.operator_constraint =
and constraints = expression generic_constraints
and script_constraint =
string * string * (meta_name * metavar) list * script_position * string
and expression = base_expression wrap
and listlen = Ast_cocci.listlen =
| MetaListLen of meta_name mcode * constraints * keep_binding * inherited
| CstListLen of int
| AnyListLen
and base_string_fragment = Ast_cocci.base_string_fragment =
| ConstantFragment of string mcode
| FormatFragment of string mcode * string_format
| Strdots of string mcode
| MetaFormatList of string mcode * meta_name mcode * listlen * constraints * keep_binding * inherited
and string_fragment = base_string_fragment wrap
and base_string_format = Ast_cocci.base_string_format =
| ConstantFormat of string mcode
| MetaFormat of meta_name mcode * constraints * keep_binding * inherited
and string_format = base_string_format wrap
and base_assignOp = Ast_cocci.base_assignOp =
| SimpleAssign of simpleAssignOp mcode
| OpAssign of arithOp mcode
| MetaAssign of meta_name mcode * constraints * keep_binding * inherited
and assignOp = base_assignOp wrap
and base_binaryOp = Ast_cocci.base_binaryOp =
| Arith of arithOp mcode
| Logical of logicalOp mcode
| MetaBinary of meta_name mcode * constraints * keep_binding * inherited
and binaryOp = base_binaryOp wrap
and arithOp = Ast_cocci.arithOp =
and constant = Ast_cocci.constant =
| String of string * Ast_cocci.isWchar
| Char of string * Ast_cocci.isWchar
| Int of string
| Float of string
| DecimalConst of string * string * string
and base_typeC = Ast_cocci.base_typeC =
| BaseType of baseType * string mcode list
| SignedT of sign mcode * typeC option
| Pointer of fullType * string mcode
| ParenType of string mcode * fullType * string mcode
| FunctionType of fullType * string mcode * parameter_list * string mcode
| Array of fullType * string mcode * expression option * string mcode
| Decimal of string mcode * string mcode * expression * string mcode option * expression option * string mcode
| EnumName of string mcode * ident option
| EnumDef of fullType * string mcode * enum_decl dots * string mcode
| StructUnionName of structUnion mcode * ident option
| StructUnionDef of fullType * string mcode * annotated_field dots * string mcode
| TypeOfExpr of string mcode * string mcode * expression * string mcode
| TypeOfType of string mcode * string mcode * fullType * string mcode
| TypeName of string mcode
| AutoType of string mcode
| MetaType of meta_name mcode * constraints * keep_binding * inherited
and fullType = base_fullType wrap
and typeC = base_typeC wrap
and baseType = Ast_cocci.baseType =
and base_declaration = Ast_cocci.base_declaration =
| Init of storage mcode option * fullType * attr list * ident * attr list * string mcode * initialiser * string mcode
| UnInit of storage mcode option * fullType * attr list * ident * attr list * string mcode
| FunProto of fninfo list * attr list * ident * string mcode * parameter_list * (string mcode * string mcode) option * string mcode * string mcode
| TyDecl of fullType * attr list * string mcode
| MacroDecl of storage mcode option * ident * string mcode * expression dots * string mcode * attr list * string mcode
| MacroDeclInit of storage mcode option * ident * string mcode * expression dots * string mcode * string mcode * initialiser * string mcode
| Typedef of string mcode * fullType * typeC * string mcode
| DisjDecl of declaration list
| ConjDecl of declaration list
| MetaDecl of meta_name mcode * constraints * keep_binding * inherited
| AsDecl of declaration * declaration
| OptDecl of declaration
and declaration = base_declaration wrap
and annotated_decl = base_annotated_decl wrap
and base_field = Ast_cocci.base_field =
| Field of fullType * ident option * bitfield option * string mcode
| MetaField of meta_name mcode * constraints * keep_binding * inherited
| MetaFieldList of meta_name mcode * listlen * constraints * keep_binding * inherited
and bitfield = string mcode * expression
and field = base_field wrap
and base_annotated_field = Ast_cocci.base_annotated_field =
| FElem of mcodekind * bool * field
| Fdots of string mcode * field option
| DisjField of annotated_field list
| ConjField of annotated_field list
| OptField of annotated_field
and annotated_field = base_annotated_field wrap
and base_enum_decl = Ast_cocci.base_enum_decl =
and enum_decl = base_enum_decl wrap
and base_initialiser = Ast_cocci.base_initialiser =
| MetaInit of meta_name mcode * constraints * keep_binding * inherited
| MetaInitList of meta_name mcode * listlen * constraints * keep_binding * inherited
| AsInit of initialiser * initialiser
| InitExpr of expression
| ArInitList of string mcode * initialiser dots * string mcode
| StrInitList of bool * string mcode * initialiser list * string mcode * initialiser list
| InitGccExt of designator list * string mcode * initialiser
| InitGccName of ident * string mcode * initialiser
| IComma of string mcode
| Idots of string mcode * initialiser option
| OptIni of initialiser
and designator = Ast_cocci.designator =
| DesignatorField of string mcode * ident
| DesignatorIndex of string mcode * expression * string mcode
| DesignatorRange of string mcode * expression * string mcode * expression * string mcode
and initialiser = base_initialiser wrap
and base_parameterTypeDef = Ast_cocci.base_parameterTypeDef =
| VoidParam of fullType * attr list
| Param of fullType * attr list * ident option * attr list
| MetaParam of meta_name mcode * constraints * keep_binding * inherited
| MetaParamList of meta_name mcode * listlen * constraints * keep_binding * inherited
| AsParam of parameterTypeDef * expression
| PComma of string mcode
| Pdots of string mcode
| OptParam of parameterTypeDef
and parameterTypeDef = base_parameterTypeDef wrap
and parameter_list = parameterTypeDef dots
and base_define_param = Ast_cocci.base_define_param =
| DParam of ident
| MetaDParamList of meta_name mcode * listlen * constraints * keep_binding * inherited
| DPComma of string mcode
| DPdots of string mcode
| OptDParam of define_param
and define_param = base_define_param wrap
and base_define_parameters = Ast_cocci.base_define_parameters =
| NoParams
| DParams of string mcode * define_param dots * string mcode
and define_parameters = base_define_parameters wrap
and meta_pos = Ast_cocci.meta_pos =
| MetaPos of meta_name mcode * constraints * meta_collect * keep_binding * inherited
| MetaCom of meta_name mcode * constraints * keep_binding * inherited
and base_rule_elem = Ast_cocci.base_rule_elem =
| FunHeader of mcodekind * bool * fninfo list * ident * string mcode * parameter_list * (string mcode * string mcode) option * string mcode * attr list
| Decl of annotated_decl
| SeqStart of string mcode
| SeqEnd of string mcode
| ExprStatement of expression option * string mcode
| IfHeader of string mcode * string mcode * expression * string mcode
| Else of string mcode
| WhileHeader of string mcode * string mcode * expression * string mcode
| DoHeader of string mcode
| WhileTail of string mcode * string mcode * expression * string mcode * string mcode
| ForHeader of string mcode * string mcode * forinfo * expression option * string mcode * expression option * string mcode
| IteratorHeader of ident * string mcode * expression dots * string mcode
| SwitchHeader of string mcode * string mcode * expression * string mcode
| Break of string mcode * string mcode
| Continue of string mcode * string mcode
| Label of ident * string mcode
| Goto of string mcode * ident * string mcode
| Return of string mcode * string mcode
| ReturnExpr of string mcode * expression * string mcode
| Exec of string mcode * string mcode * exec_code dots * string mcode
| MetaRuleElem of meta_name mcode * constraints * keep_binding * inherited
| MetaStmt of meta_name mcode * constraints * keep_binding * metaStmtInfo * inherited
| MetaStmtList of meta_name mcode * listlen * constraints * keep_binding * inherited
| Exp of expression
| TopExp of expression
| Ty of fullType
| TopId of ident
| TopInit of initialiser
| Include of string mcode * inc_file mcode
| MetaInclude of string mcode * expression
| Undef of string mcode * ident
| DefineHeader of string mcode * ident * define_parameters
| Pragma of string mcode * ident * pragmainfo
| Case of string mcode * expression * string mcode
| Default of string mcode * string mcode
| AsRe of rule_elem * rule_elem
| DisjRuleElem of rule_elem list
and base_pragmainfo = Ast_cocci.base_pragmainfo =
and pragmainfo = base_pragmainfo wrap
and forinfo = Ast_cocci.forinfo =
| ForExp of expression option * string mcode
| ForDecl of annotated_decl
and base_attr = Ast_cocci.base_attr =
| Attribute of Ast_cocci.attr_arg
| GccAttribute of string mcode * string mcode * string mcode * Ast_cocci.attr_arg * string mcode * string mcode
and base_attr_arg = Ast_cocci.base_attr_arg =
| MacroAttr of string mcode
| MacroAttrArgs of string mcode * string mcode * expression dots * string mcode
| MetaAttr of meta_name mcode * constraints * keep_binding * inherited
and attr_arg = base_attr_arg wrap
and metaStmtInfo = Ast_cocci.metaStmtInfo =
| NotSequencible
| SequencibleAfterDots of dots_whencode list
| Sequencible
and rule_elem = base_rule_elem wrap
and base_statement = Ast_cocci.base_statement =
| Seq of rule_elem * statement dots * rule_elem
| IfThen of rule_elem * statement * end_info
| IfThenElse of rule_elem * statement * rule_elem * statement * end_info
| While of rule_elem * statement * end_info
| Do of rule_elem * statement * rule_elem
| For of rule_elem * statement * end_info
| Iterator of rule_elem * statement * end_info
| Switch of rule_elem * rule_elem * statement dots * case_line list * rule_elem
| Atomic of rule_elem
| Disj of statement dots list
| Conj of statement dots list
| Nest of string mcode * statement dots * string mcode * (statement dots, statement) whencode list * multi * dots_whencode list * dots_whencode list
| FunDecl of rule_elem * rule_elem * statement dots * rule_elem * end_info
| Define of rule_elem * statement dots
| AsStmt of statement * statement
| Dots of string mcode * (statement dots, statement) whencode list * dots_whencode list * dots_whencode list
| OptStm of statement
and (!'a, !'b) whencode = ('a, 'b) Ast_cocci.whencode =
| WhenNot of 'a
| WhenAlways of 'b
| WhenModifier of when_modifier
| WhenNotTrue of rule_elem
| WhenNotFalse of rule_elem
and statement = base_statement wrap
and base_case_line = Ast_cocci.base_case_line =
and case_line = base_case_line wrap
and base_exec_code = Ast_cocci.base_exec_code =
| ExecEval of string mcode * expression
| ExecToken of string mcode
| ExecDots of string mcode
and exec_code = base_exec_code wrap
and base_top_level = Ast_cocci.base_top_level =
and top_level = base_top_level wrap
and rulename = Ast_cocci.rulename =
| CocciRulename of string option * dependency * string list * string list * exists * parser_kind
| GeneratedRulename of string option * dependency * string list * string list * exists * parser_kind
| ScriptRulename of string option * string * dependency
| InitialScriptRulename of string option * string * dependency
| FinalScriptRulename of string option * string * dependency
and rule = Ast_cocci.rule =
| CocciRule of string * dependency * string list * exists * top_level list * bool list * ruletype
| ScriptRule of string * string * dependency * (script_meta_name * meta_name * metavar * mvinit) list * meta_name list * script_position * string
| InitialScriptRule of string * string * dependency * (script_meta_name * meta_name * metavar * mvinit) list * script_position * string
| FinalScriptRule of string * string * dependency * (script_meta_name * meta_name * metavar * mvinit) list * script_position * string
and dep = Ast_cocci.dep =
and anything = Ast_cocci.anything =
| FullTypeTag of fullType
| BaseTypeTag of baseType
| StructUnionTag of structUnion
| SignTag of sign
| IdentTag of ident
| ExpressionTag of expression
| ConstantTag of constant
| UnaryOpTag of unaryOp
| AssignOpTag of assignOp
| SimpleAssignOpTag of simpleAssignOp
| OpAssignOpTag of arithOp
| FixOpTag of fixOp
| BinaryOpTag of binaryOp
| ArithOpTag of arithOp
| LogicalOpTag of logicalOp
| DeclarationTag of declaration
| FieldTag of field
| EnumDeclTag of enum_decl
| InitTag of initialiser
| StorageTag of storage
| IncFileTag of inc_file
| Rule_elemTag of rule_elem
| StatementTag of statement
| ForInfoTag of forinfo
| CaseLineTag of case_line
| StringFragmentTag of string_fragment
| AttributeTag of attr
| AttrArgTag of attr_arg
| ConstVolTag of const_vol
| Token of string * info option
| Directive of added_string list
| Code of top_level
| ExprDotsTag of expression dots
| ParamDotsTag of parameterTypeDef dots
| StmtDotsTag of statement dots
| AnnDeclDotsTag of annotated_decl dots
| AnnFieldDotsTag of annotated_field dots
| EnumDeclDotsTag of enum_decl dots
| DefParDotsTag of define_param dots
| TypeCTag of typeC
| ParamTag of parameterTypeDef
| SgrepStartTag of string
| SgrepEndTag of string
val mkToken : string -> anything
val unwrap : 'a wrap -> 'a
val unwrap_mcode : 'a mcode -> 'a
val get_mcode_col : 'a mcode -> int
val get_constraints : 'a wrap -> (meta_name * constraints) list
val add_constraint : 'a wrap -> (meta_name * constraints) -> 'a wrap
val get_dots_bef_aft : statement -> dots_bef_aft
val set_dots_bef_aft : dots_bef_aft -> statement -> statement
val get_test_exp : 'a wrap -> bool
val set_test_exp : expression -> expression
val get_safe_decl : 'a wrap -> Ast_cocci.safety
val tag2c : anything -> string
val no_info : info
val make_meta_decl :
string ->
mcodekind ->
constraints ->
(meta_name list * (meta_name * seed) list * meta_name list) ->
declaration
val make_term : 'a -> 'a wrap
val make_mcode : 'a -> 'a mcode
val string_of_arithOp : arithOp -> string
val string_of_logicalOp : logicalOp -> string
val string_of_assignOp : assignOp -> string
val string_of_binaryOp : binaryOp -> string
val string_of_sign : sign -> string
val string_of_baseType : baseType -> string
val string_of_const_vol : const_vol list -> string
val string_of_structUnion : structUnion -> string
val string_of_typeC : typeC -> string
val string_of_fullType : fullType -> string
val ident_of_expression_opt : expression -> ident option
type !'a transformer = 'a Ast_cocci.transformer = {
baseType : (baseType -> string mcode list -> 'a) option;
decimal : (string mcode -> string mcode -> expression -> string mcode option -> expression option -> string mcode -> 'a) option;
enumName : (string mcode -> ident option -> 'a) option;
structUnionName : (structUnion mcode -> ident option -> 'a) option;
typeName : (string mcode -> 'a) option;
metaType : (meta_name mcode -> constraints -> keep_binding -> inherited -> 'a) option;
}
val empty_transformer : 'a transformer
val fullType_map : base_typeC transformer -> fullType -> fullType
val fullType_fold : ('a -> 'a) transformer -> fullType -> 'a -> 'a
val fullType_iter : unit transformer -> fullType -> unit
val string_of_expression : expression -> string option
type (!'a, !'b) cstr_transformer = ('a, 'b) Ast_cocci.cstr_transformer = {
cstr_constant : (constant_constraint -> 'b) option;
cstr_operator : (operator_constraint -> 'b) option;
cstr_meta_name : (meta_name -> 'b) option;
cstr_regexp : (string -> Regexp.regexp -> 'b) option;
cstr_script : ((bool * script_constraint) -> 'b) option;
cstr_expr : ('a -> 'b) option;
cstr_sub : (meta_name list -> 'b) option;
cstr_type : (fullType -> 'b) option;
}
val empty_cstr_transformer : ('a, 'b) cstr_transformer
val cstr_fold_sign :
('a, 'b -> 'b) cstr_transformer ->
('a, 'b -> 'b) cstr_transformer ->
'a generic_constraints ->
'b ->
'b
val cstr_fold :
('a, 'b -> 'b) cstr_transformer ->
'a generic_constraints ->
'b ->
'b
val cstr_iter : ('a, unit) cstr_transformer -> 'a generic_constraints -> unit
val cstr_map :
('a, 'b generic_constraints) cstr_transformer ->
'a generic_constraints ->
'b generic_constraints
val cstr_meta_names : 'a generic_constraints -> meta_name list
val cstr_pos_meta_names : 'a generic_constraints -> meta_name list
val filter_merge_variables :
(script_meta_name * meta_name * metavar * mvinit) list ->
(string * string) list
val prepare_merge_variables :
('a -> ('b * (script_meta_name * meta_name * metavar * mvinit) list) option) ->
'a list ->
('b * (int * string array)) list * string array
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>