5.7.2.5. Pattern

Patterns; used for matching variants in match statements.
Start ocaml section to src/flx_ast.mli[6 /8 ] Next Prev First Last
   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: 
End ocaml section to src/flx_ast.mli[6]