283: # 514 "./lpsrc/flx_types.ipk" 284: and float_pat = 285: | Float_plus of string * string (** type, value *) 286: | Float_minus of string * string 287: | Float_inf (** infinity *) 288: | Float_minus_inf (** negative infinity *) 289: 290: and pattern_t = 291: [ 292: | `PAT_nan of range_srcref 293: | `PAT_none of range_srcref 294: 295: (* constants *) 296: | `PAT_int of range_srcref * string * bigint 297: | `PAT_string of range_srcref * string 298: 299: (* ranges *) 300: | `PAT_int_range of range_srcref * string * bigint * string * bigint 301: | `PAT_string_range of range_srcref * string * string 302: | `PAT_float_range of range_srcref * float_pat * float_pat 303: 304: (* other *) 305: | `PAT_coercion of range_srcref * pattern_t * typecode_t 306: 307: | `PAT_name of range_srcref * id_t 308: | `PAT_tuple of range_srcref * pattern_t list 309: | `PAT_any of range_srcref 310: | `PAT_regexp of range_srcref * string * id_t list 311: (* second list is group bindings 1 .. n-1: EXCLUDES 0 cause we can use 'as' for that ?? *) 312: | `PAT_const_ctor of range_srcref * qualified_name_t 313: | `PAT_nonconst_ctor of range_srcref * qualified_name_t * pattern_t 314: | `PAT_as of range_srcref * pattern_t * id_t 315: | `PAT_when of range_srcref * pattern_t * expr_t 316: | `PAT_record of range_srcref * (id_t * pattern_t) list 317: ] 318: