diff options
Diffstat (limited to 'src/types.mli')
-rw-r--r-- | src/types.mli | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/types.mli b/src/types.mli new file mode 100644 index 0000000..5f23d3a --- /dev/null +++ b/src/types.mli @@ -0,0 +1,125 @@ +exception TooMuchRParen + +type raw_pos = int * int + +type pos = string * int * int + +type spaces = + | Space_0 + | Space_1 + | Space_n + | Space_cr + | Space_none + +type context = I_scalar | I_hash | I_array | I_func | I_raw | I_star + +type maybe_context = + | M_none + + (* scalars *) + | M_bool | M_int | M_float + | M_revision + | M_string + | M_ref of maybe_context + | M_undef + | M_unknown_scalar + + | M_tuple of maybe_context list + | M_list + | M_array + | M_hash + | M_sub + + | M_special + | M_unknown + | M_mixed of maybe_context list + +type sub_declaration_kind = Real_sub_declaration | Glob_assign + +type fromparser = + | Undef + | Ident of string option * string * pos + | Num of string * pos + | Raw_string of string * pos + | String of (string * fromparser) list * pos + + | Ref of context * fromparser + | Deref of context * fromparser + | Deref_with of context * context * fromparser * fromparser (* from_context, to_context, ref, para *) + + | Diamond of fromparser option + + | List of fromparser list + | Block of fromparser list + + | Call_op of string * fromparser list * pos + | Call of fromparser * fromparser list + | Method_call of fromparser * fromparser * fromparser list + + | Anonymous_sub of string option * fromparser * pos (* prototype, expr, pos *) + | My_our of string * (context * string) list * pos + | Use of fromparser * fromparser list + | Sub_declaration of fromparser * string option * fromparser * sub_declaration_kind (* name, prototype, body, kind *) + | Package of fromparser + | Label of string + | Perl_checker_comment of string * pos + + | Too_complex + | Semi_colon + +type priority = +| P_tok +| P_tight +| P_mul +| P_add +| P_uniop +| P_cmp +| P_eq +| P_expr +| P_bit +| P_tight_and +| P_tight_or +| P_ternary +| P_assign +| P_comma +| P_call_no_paren +| P_and +| P_or +| P_loose + +| P_paren_wanted of priority +| P_paren of priority + +| P_none + +type 'a any_spaces_pos = { + any : 'a ; + spaces : spaces ; + pos : int * int ; + mcontext : maybe_context ; + } + +type 'a prio_anyexpr = { + priority : priority ; + expr : 'a + } + +type prio_expr_spaces_pos = fromparser prio_anyexpr any_spaces_pos +type prio_lexpr_spaces_pos = fromparser list prio_anyexpr any_spaces_pos + +type warning = + | Warn_white_space + | Warn_suggest_simpler + | Warn_unused_global_vars + | Warn_void + | Warn_context + | Warn_strange + | Warn_traps + | Warn_complex_expressions + | Warn_normalized_expressions + | Warn_suggest_functional + | Warn_prototypes + | Warn_import_export + | Warn_names + | Warn_MDK_Common + | Warn_help_perl_checker |