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: ]
    30: 
    31: type base_type_qual_t = [
    32:   | `Incomplete
    33:   | `Pod
    34:   | `GC_pointer (* this means the type is a pointer the GC must follow *)
    35: ]
    36: 
    37: (** type of a qualified name *)
    38: type qualified_name_t =
    39:   [
    40:   | `AST_void of range_srcref
    41:   | `AST_name of range_srcref * string * typecode_t list
    42:   | `AST_case_tag of range_srcref * int
    43:   | `AST_typed_case of range_srcref * int * typecode_t
    44:   | `AST_lookup of range_srcref * (expr_t * string * typecode_t list)
    45:   | `AST_the of range_srcref * qualified_name_t
    46:   | `AST_index of range_srcref * string * int
    47:   | `AST_callback of range_srcref * qualified_name_t
    48:   ]
    49: 
    50: (** type of a suffixed name *)
    51: and suffixed_name_t =
    52:   [
    53:   | `AST_void of range_srcref
    54:   | `AST_name of range_srcref * string * typecode_t list
    55:   | `AST_case_tag of range_srcref * int
    56:   | `AST_typed_case of range_srcref * int * typecode_t
    57:   | `AST_lookup of range_srcref * (expr_t * string * typecode_t list)
    58:   | `AST_the of range_srcref * qualified_name_t
    59:   | `AST_index of range_srcref * string * int
    60:   | `AST_callback of range_srcref * qualified_name_t
    61:   | `AST_suffix of range_srcref * (qualified_name_t * typecode_t)
    62:   ]
    63: 
    64: (** type of a regular expression *)
    65: and regexp_t =
    66:   | REGEXP_seq of regexp_t * regexp_t (** concatenation *)
    67:   | REGEXP_alt of regexp_t * regexp_t (** alternation *)
    68:   | REGEXP_aster of regexp_t (** Kleene closure *)
    69:   | REGEXP_name of qualified_name_t (** lookup regular definition *)
    70:   | REGEXP_string of string  (** concatenation of chars of string *)
    71:   | REGEXP_epsilon (** epsilon: null string *)
    72:   | REGEXP_sentinel (** end marker *)
    73:   | REGEXP_code of expr_t (** associated code *)
    74:   | REGEXP_group of string * regexp_t (** named group *)
    75: 
End ocaml section to src/flx_ast.mli[2]