summaryrefslogtreecommitdiffstats
path: root/perl_checker.src/parser_helper.mli
blob: ecd509518787e2cc31e04d45e0bebc0fd5941cbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
val bpos : int * int
val raw_pos2pos : 'a * 'b -> string * 'a * 'b
val raw_pos_range :
  'a Types.any_spaces_pos -> 'b Types.any_spaces_pos -> int * int
val pos_range :
  'a Types.any_spaces_pos -> 'b Types.any_spaces_pos -> string * int * int
val get_pos : 'a Types.any_spaces_pos -> string * int * int
val get_pos_start : 'a Types.any_spaces_pos -> int
val get_pos_end : 'a Types.any_spaces_pos -> int
val var_dollar_ : Types.pos -> Types.fromparser
val var_STDOUT : Types.fromparser
val new_any :
  Types.maybe_context ->
  'a -> Types.spaces -> int * int -> 'a Types.any_spaces_pos
val new_any_ : 'a -> Types.spaces -> int * int -> 'a Types.any_spaces_pos
val new_esp :
  Types.maybe_context ->
  'a ->
  'b Types.any_spaces_pos ->
  'c Types.any_spaces_pos -> 'a Types.any_spaces_pos
val new_1esp : 'a -> 'b Types.any_spaces_pos -> 'a Types.any_spaces_pos
val new_pesp :
  Types.maybe_context ->
  Types.priority ->
  'a ->
  'b Types.any_spaces_pos ->
  'c Types.any_spaces_pos -> 'a Types.prio_anyexpr Types.any_spaces_pos
val new_1pesp :
  Types.priority ->
  'a -> 'b Types.any_spaces_pos -> 'a Types.prio_anyexpr Types.any_spaces_pos
val default_esp : 'a -> 'a Types.any_spaces_pos
val default_pesp :
  Types.priority -> 'a -> 'a Types.prio_anyexpr Types.any_spaces_pos
val split_name_or_fq_name : string -> string option * string
val is_var_dollar_ : Types.fromparser -> bool
val is_var_number_match : Types.fromparser -> bool
val non_scalar_context : Types.context -> bool
val is_scalar_context : Types.context -> bool
val is_not_a_scalar : Types.fromparser -> bool
val is_a_scalar : Types.fromparser -> bool
val is_a_string : Types.fromparser -> bool
val is_parenthesized : Types.fromparser -> bool
val un_parenthesize : Types.fromparser -> Types.fromparser
val un_parenthesize_full : Types.fromparser -> Types.fromparser
val un_parenthesize_full_l : Types.fromparser list -> Types.fromparser list
val is_always_true : Types.fromparser -> bool
val is_always_false : Types.fromparser -> bool
val is_lvalue : Types.fromparser -> bool
val not_complex : Types.fromparser -> bool
val not_simple : Types.fromparser -> bool
val string_of_Ident : Types.fromparser -> string
val context2s : Types.context -> string
val variable2s : Types.context * string -> string
val is_same_fromparser : Types.fromparser -> Types.fromparser -> bool
val from_scalar : Types.fromparser Types.any_spaces_pos -> Types.fromparser
val from_array : Types.fromparser Types.any_spaces_pos -> Types.fromparser
val get_pos_from_expr : Types.fromparser -> Types.pos
val msg_with_rawpos : int * int -> string -> string
val die_with_rawpos : int * int -> string -> 'a
val warn : int * int -> string -> unit
val die_rule : string -> 'a
val warn_rule : string -> unit
val debug : string -> unit
val warn_verb : int -> string -> unit
val warn_too_many_space : int -> unit
val warn_no_space : int -> unit
val warn_cr : int -> unit
val warn_space : int -> unit
val prio_less : Types.priority * Types.priority -> bool
val prio_lo_check :
  Types.priority -> Types.priority -> int * int -> Types.fromparser -> unit
val prio_lo :
  Types.priority ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser
val prio_lo_after :
  Types.priority ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser
val prio_lo_concat :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser
val hash_ref :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser
val sp_0 : 'a Types.any_spaces_pos -> unit
val sp_0_or_cr : 'a Types.any_spaces_pos -> unit
val sp_1 : 'a Types.any_spaces_pos -> unit
val sp_n : 'a Types.any_spaces_pos -> unit
val sp_p : 'a Types.any_spaces_pos -> unit
val sp_cr : 'a Types.any_spaces_pos -> unit
val sp_same : 'a Types.any_spaces_pos -> 'b Types.any_spaces_pos -> unit
val function_to_context : bool -> string -> Types.maybe_context
val word_alone :
  Types.fromparser Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos
val check_parenthesized_first_argexpr :
  string ->
  Types.fromparser list Types.prio_anyexpr Types.any_spaces_pos -> unit
val check_parenthesized_first_argexpr_with_Ident :
  Types.fromparser ->
  Types.fromparser list Types.prio_anyexpr Types.any_spaces_pos -> unit
val check_hash_subscript :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos -> unit
val check_arrow_needed :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  'a Types.any_spaces_pos -> unit
val check_scalar_subscripted : Types.fromparser Types.any_spaces_pos -> unit
val negatable_ops : (string * string) list
val check_negatable_expr :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos -> unit
val check_ternary_paras :
  Types.fromparser * Types.fromparser * Types.fromparser ->
  Types.fromparser list
val check_unneeded_var_dollar_ :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos -> unit
val check_unneeded_var_dollar_not :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos -> unit
val check_unneeded_var_dollar_s :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos -> unit
val check_my : string Types.any_spaces_pos -> unit
val check_foreach : string Types.any_spaces_pos -> unit
val check_for : string Types.any_spaces_pos -> unit
val check_for_foreach :
  string Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos -> unit
val check_block_sub :
  Types.fromparser list Types.any_spaces_pos ->
  'a Types.any_spaces_pos -> unit
val check_block_ref :
  Types.fromparser list Types.any_spaces_pos ->
  'a Types.any_spaces_pos -> unit
val check_unless_else :
  'a list Types.any_spaces_pos -> 'b list Types.any_spaces_pos -> unit
val check_my_our_paren :
  ((bool * 'a) * 'b list) Types.any_spaces_pos ->
  'c Types.any_spaces_pos -> unit
val check_simple_pattern : Types.fromparser list -> unit
val only_one : Types.fromparser list Types.any_spaces_pos -> Types.fromparser
val only_one_array_ref :
  Types.fromparser list Types.any_spaces_pos -> Types.fromparser
val only_one_in_List :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser
val is_only_one_in_List : Types.fromparser list -> bool
val maybe_to_Raw_string : Types.fromparser -> Types.fromparser
val to_List : Types.fromparser list -> Types.fromparser
val deref_arraylen : Types.fromparser -> Types.fromparser
val deref_raw : Types.context -> Types.fromparser -> Types.fromparser
val to_Ident :
  (string option * string) Types.any_spaces_pos -> Types.fromparser
val to_Raw_string : string Types.any_spaces_pos -> Types.fromparser
val to_Method_call :
  Types.fromparser * Types.fromparser * Types.fromparser list ->
  Types.fromparser
val to_Deref_with :
  Types.context * Types.context * Types.fromparser * Types.fromparser ->
  Types.fromparser
val to_Local :
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser
val sub_declaration :
  Types.fromparser * string option ->
  Types.fromparser list -> Types.sub_declaration_kind -> Types.fromparser
val anonymous_sub :
  string option ->
  Types.fromparser list Types.any_spaces_pos -> Types.fromparser
val call_with_same_para_special : Types.fromparser -> Types.fromparser
val remove_call_with_same_para_special : Types.fromparser -> Types.fromparser
val cook_call_op :
  string -> Types.fromparser list -> int * int -> Types.fromparser
val to_Call_op :
  Types.maybe_context ->
  string ->
  Types.fromparser list ->
  'a Types.any_spaces_pos ->
  'b Types.any_spaces_pos -> Types.fromparser Types.any_spaces_pos
val to_Call_op_ :
  Types.maybe_context ->
  Types.priority ->
  string ->
  Types.fromparser list ->
  'a Types.any_spaces_pos ->
  'b Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos
val to_Call_assign_op_ :
  Types.maybe_context ->
  Types.priority ->
  string ->
  Types.fromparser ->
  Types.fromparser ->
  'a Types.any_spaces_pos ->
  'b Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos
val followed_by_comma :
  Types.fromparser list -> bool -> Types.fromparser list
val pot_strings : (string, (string * int * int) * string list) Hashtbl.t
val po_comments : string list ref
val po_comment : string Types.any_spaces_pos -> unit
val check_format_a_la_printf : string -> int -> Types.maybe_context list
val generate_pot : string -> unit
val call_raw :
  bool -> Types.fromparser * Types.fromparser list -> Types.fromparser
val call : Types.fromparser * Types.fromparser list -> Types.fromparser
val check_return :
  Types.fromparser Types.any_spaces_pos ->
  Types.fromparser list Types.prio_anyexpr Types.any_spaces_pos -> unit
val call_and_context :
  Types.fromparser * Types.fromparser list ->
  bool ->
  Types.priority ->
  'a Types.any_spaces_pos ->
  'b Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos
val call_no_paren :
  Types.fromparser Types.any_spaces_pos ->
  Types.fromparser list Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos
val call_with_paren :
  Types.fromparser Types.any_spaces_pos ->
  Types.fromparser list Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos
val call_func :
  Types.fromparser Types.any_spaces_pos ->
  Types.fromparser list Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos
val call_one_scalar_para :
  string Types.any_spaces_pos ->
  Types.fromparser list ->
  'a Types.any_spaces_pos ->
  'b Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos
val call_op_if_infix :
  Types.fromparser ->
  Types.fromparser ->
  'a Types.any_spaces_pos ->
  'b Types.any_spaces_pos -> Types.fromparser Types.any_spaces_pos
val call_op_unless_infix :
  Types.fromparser ->
  Types.fromparser ->
  'a Types.any_spaces_pos ->
  'b Types.any_spaces_pos -> Types.fromparser Types.any_spaces_pos
val current_lexbuf : Lexing.lexbuf option ref
val list2tokens : ((int * int) * 'a) list -> Lexing.lexbuf -> 'a
val parse_tokens :
  ((Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b list) ->
  ((int * int) * 'a) list -> Lexing.lexbuf option -> 'b list
val parse_interpolated :
  ((Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> Types.fromparser list) ->
  (string * ((int * int) * 'a) list) list -> (string * Types.fromparser) list
val to_String :
  ((Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> Types.fromparser list) ->
  bool ->
  (string * ((int * int) * 'a) list) list Types.any_spaces_pos ->
  Types.fromparser
val from_PATTERN :
  ((Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> Types.fromparser list) ->
  ((string * ((int * int) * 'a) list) list * string) Types.any_spaces_pos ->
  Types.fromparser list
val from_PATTERN_SUBST :
  ((Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> Types.fromparser list) ->
  ((string * ((int * int) * 'a) list) list *
   (string * ((int * int) * 'a) list) list * string)
  Types.any_spaces_pos -> Types.fromparser list
val mcontext2s : Types.maybe_context -> string
val mcontext_lower : Types.maybe_context -> Types.maybe_context -> bool
val mcontext_is_scalar : Types.maybe_context -> bool
val mcontext_to_scalar : Types.maybe_context -> Types.maybe_context
val mcontext_merge_raw :
  Types.maybe_context -> Types.maybe_context -> Types.maybe_context option
val mcontext_lmerge_add :
  Types.maybe_context list -> Types.maybe_context -> Types.maybe_context list
val mcontext_lmerge : Types.maybe_context list -> Types.maybe_context
val mcontext_merge :
  Types.maybe_context -> Types.maybe_context -> Types.maybe_context
val mcontext_lmaybe :
  'a list Types.any_spaces_pos -> Types.maybe_context list
val mcontext_check_raw : Types.maybe_context -> Types.maybe_context -> unit
val mcontext_check :
  Types.maybe_context ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos -> unit
val mcontext_check_unop_l :
  Types.maybe_context ->
  Types.fromparser list Types.prio_anyexpr Types.any_spaces_pos -> unit
val mcontext_check_non_none : 'a Types.any_spaces_pos -> unit
val mcontext_check_none :
  string -> Types.fromparser list -> 'a Types.any_spaces_pos -> unit
val mcontext_float_or_int : Types.maybe_context list -> Types.maybe_context
val mcontext_op_assign :
  'a Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  Types.maybe_context
val mtuple_context_concat :
  Types.maybe_context -> Types.maybe_context -> Types.maybe_context
val symops :
  Types.priority ->
  Types.maybe_context ->
  Types.maybe_context ->
  string ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  'a Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos ->
  Types.fromparser Types.prio_anyexpr Types.any_spaces_pos