5.7.2.1. Names

A simple name is an identifier, a qualified name is a dot (.) separated list of instantiated names, and a instantiated name is a simple name optionally followed by a square bracket enclosed list of type expressions.
Start ocaml section to src/flx_ast.mli[2 /8 ] Next Prev First Last
    22: # 241 "./lpsrc/flx_types.ipk"
    23: type id_t = string
    24: type bid_t = int
    25: type index_map_t = (int,int) Hashtbl.t
    26: type  c_t = [
    27:   | `StrTemplate of string
    28:   | `Str of string
    29:   | `Virtual
    30:   | `Identity
    31: ]
    32: 
    33: type base_type_qual_t = [
    34:   | `Incomplete
    35:   | `Pod
    36:   | `GC_pointer (* this means the type is a pointer the GC must follow *)
    37: ]
    38: 
    39: (** type of a qualified name *)
    40: type qualified_name_t =
    41:   [
    42:   | `AST_void of range_srcref
    43:   | `AST_name of range_srcref * string * typecode_t list
    44:   | `AST_case_tag of range_srcref * int
    45:   | `AST_typed_case of range_srcref * int * typecode_t
    46:   | `AST_lookup of range_srcref * (expr_t * string * typecode_t list)
    47:   | `AST_the of range_srcref * qualified_name_t
    48:   | `AST_index of range_srcref * string * int
    49:   | `AST_callback of range_srcref * qualified_name_t
    50:   ]
    51: 
    52: (** type of a suffixed name *)
    53: and suffixed_name_t =
    54:   [
    55:   | `AST_void of range_srcref
    56:   | `AST_name of range_srcref * string * typecode_t list
    57:   | `AST_case_tag of range_srcref * int
    58:   | `AST_typed_case of range_srcref * int * typecode_t
    59:   | `AST_lookup of range_srcref * (expr_t * string * typecode_t list)
    60:   | `AST_the of range_srcref * qualified_name_t
    61:   | `AST_index of range_srcref * string * int
    62:   | `AST_callback of range_srcref * qualified_name_t
    63:   | `AST_suffix of range_srcref * (qualified_name_t * typecode_t)
    64:   ]
    65: 
    66: (** type of a regular expression *)
    67: and regexp_t =
    68:   [
    69:   | `REGEXP_seq of regexp_t * regexp_t (** concatenation *)
    70:   | `REGEXP_alt of regexp_t * regexp_t (** alternation *)
    71:   | `REGEXP_aster of regexp_t (** Kleene closure *)
    72:   | `REGEXP_name of qualified_name_t (** lookup regular definition *)
    73:   | `REGEXP_string of string  (** concatenation of chars of string *)
    74:   | `REGEXP_epsilon (** epsilon: null string *)
    75:   | `REGEXP_sentinel (** end marker *)
    76:   | `REGEXP_code of expr_t (** associated code *)
    77:   | `REGEXP_group of string * regexp_t (** named group *)
    78:   ]
    79: 
End ocaml section to src/flx_ast.mli[2]