diff options
| author | Kathy Gray | 2013-07-26 13:00:56 +0100 |
|---|---|---|
| committer | Kathy Gray | 2013-07-26 13:00:56 +0100 |
| commit | 37a4c2ebcfab7834c17fe44703a71da277cb285e (patch) | |
| tree | 366ec0c11ec8a86009aff7986862df046ca0f202 /src/parse_ast.ml | |
| parent | f79e3c770ab7b772edf0cd54993c059c4d7b969a (diff) | |
Remove white space/terminal tracking
Diffstat (limited to 'src/parse_ast.ml')
| -rw-r--r-- | src/parse_ast.ml | 226 |
1 files changed, 113 insertions, 113 deletions
diff --git a/src/parse_ast.ml b/src/parse_ast.ml index c58a7cd7..74ec4c68 100644 --- a/src/parse_ast.ml +++ b/src/parse_ast.ml @@ -47,32 +47,32 @@ let combine_lex_skips s1 s2 = type terminal = lex_skips -type x = terminal * text (* identifier *) -type ix = terminal * text (* infix identifier *) +type x = text (* identifier *) +type ix = text (* infix identifier *) type base_kind_aux = (* base kind *) - BK_type of terminal (* kind of types *) - | BK_nat of terminal (* kind of natural number size expressions *) - | BK_order of terminal (* kind of vector order specifications *) - | BK_effects of terminal (* kind of effect sets *) + BK_type (* kind of types *) + | BK_nat (* kind of natural number size expressions *) + | BK_order (* kind of vector order specifications *) + | BK_effects (* kind of effect sets *) type efct_aux = (* effect *) - Effect_rreg of terminal (* read register *) - | Effect_wreg of terminal (* write register *) - | Effect_rmem of terminal (* read memory *) - | Effect_wmem of terminal (* write memory *) - | Effect_undef of terminal (* undefined-instruction exception *) - | Effect_unspec of terminal (* unspecified values *) - | Effect_nondet of terminal (* nondeterminism from intra-instruction parallelism *) + Effect_rreg (* read register *) + | Effect_wreg (* write register *) + | Effect_rmem (* read memory *) + | Effect_wmem (* write memory *) + | Effect_undef (* undefined-instruction exception *) + | Effect_unspec (* unspecified values *) + | Effect_nondet (* nondeterminism from intra-instruction parallelism *) type id_aux = (* Identifier *) Id of x - | DeIid of terminal * x * terminal (* remove infix status *) + | DeIid of x (* remove infix status *) type @@ -92,23 +92,23 @@ id = type kind_aux = (* kinds *) - K_kind of (base_kind * terminal) list + K_kind of (base_kind) list type atyp_aux = (* expression of all kinds *) ATyp_id of id (* identifier *) - | ATyp_constant of (terminal * int) (* constant *) - | ATyp_times of atyp * terminal * atyp (* product *) - | ATyp_sum of atyp * terminal * atyp (* sum *) - | ATyp_exp of terminal * terminal * atyp (* exponential *) - | ATyp_inc of terminal (* increasing (little-endian) *) - | ATyp_dec of terminal (* decreasing (big-endian) *) - | ATyp_efid of terminal * id - | ATyp_set of terminal * terminal * (efct * terminal) list * terminal (* effect set *) - | ATyp_wild of terminal (* Unspecified type *) - | ATyp_fn of atyp * terminal * atyp * atyp (* Function type (first-order only in user code) *) - | ATyp_tup of (atyp * terminal) list (* Tuple type *) + | ATyp_constant of int (* constant *) + | ATyp_times of atyp * atyp (* product *) + | ATyp_sum of atyp * atyp (* sum *) + | ATyp_exp of atyp (* exponential *) + | ATyp_inc (* increasing (little-endian) *) + | ATyp_dec (* decreasing (big-endian) *) + | ATyp_efid of id + | ATyp_set of (efct) list (* effect set *) + | ATyp_wild (* Unspecified type *) + | ATyp_fn of atyp * atyp * atyp (* Function type (first-order only in user code) *) + | ATyp_tup of (atyp) list (* Tuple type *) | ATyp_app of id * (atyp) list (* type constructor application *) and atyp = @@ -122,10 +122,10 @@ kind = type nexp_constraint_aux = (* constraint over kind $_$ *) - NC_fixed of atyp * terminal * atyp - | NC_bounded_ge of atyp * terminal * atyp - | NC_bounded_le of atyp * terminal * atyp - | NC_nat_set_bounded of id * terminal * terminal * ((terminal * int) * terminal) list * terminal + NC_fixed of atyp * atyp + | NC_bounded_ge of atyp * atyp + | NC_bounded_le of atyp * atyp + | NC_nat_set_bounded of id * (int) list type @@ -146,22 +146,22 @@ kinded_id = type typquant_aux = (* type quantifiers and constraints *) - TypQ_tq of terminal * (kinded_id) list * terminal * (nexp_constraint * terminal) list * terminal - | TypQ_no_constraint of terminal * (kinded_id) list * terminal (* sugar, omitting constraints *) + TypQ_tq of (kinded_id) list * (nexp_constraint) list + | TypQ_no_constraint of (kinded_id) list (* sugar, omitting constraints *) | TypQ_no_forall (* sugar, omitting quantifier and constraints *) type lit_aux = (* Literal constant *) - L_unit of terminal * terminal (* $() : _$ *) - | L_zero of terminal (* $_ : _$ *) - | L_one of terminal (* $_ : _$ *) - | L_true of terminal (* $_ : _$ *) - | L_false of terminal (* $_ : _$ *) - | L_num of (terminal * int) (* natural number constant *) - | L_hex of terminal * string (* bit vector constant, C-style *) - | L_bin of terminal * string (* bit vector constant, C-style *) - | L_string of terminal * string (* string constant *) + L_unit (* $() : _$ *) + | L_zero (* $_ : _$ *) + | L_one (* $_ : _$ *) + | L_true (* $_ : _$ *) + | L_false (* $_ : _$ *) + | L_num of int (* natural number constant *) + | L_hex of string (* bit vector constant, C-style *) + | L_bin of string (* bit vector constant, C-style *) + | L_string of string (* string constant *) type @@ -182,23 +182,23 @@ typschm_aux = (* type scheme *) type pat_aux = (* Pattern *) P_lit of lit (* literal constant pattern *) - | P_wild of terminal (* wildcard *) - | P_as of terminal * pat * terminal * id * terminal (* named pattern *) - | P_typ of terminal * atyp * pat * terminal (* typed pattern *) + | P_wild (* wildcard *) + | P_as of pat * id (* named pattern *) + | P_typ of atyp * pat (* typed pattern *) | P_id of id (* identifier *) | P_app of id * (pat) list (* union constructor pattern *) - | P_record of terminal * (fpat * terminal) list * terminal * bool * terminal (* struct pattern *) - | P_vector of terminal * (pat * terminal) list * terminal (* vector pattern *) - | P_vector_indexed of terminal * (((terminal * int) * terminal * pat) * terminal) list * terminal (* vector pattern (with explicit indices) *) - | P_vector_concat of (pat * terminal) list (* concatenated vector pattern *) - | P_tup of terminal * (pat * terminal) list * terminal (* tuple pattern *) - | P_list of terminal * (pat * terminal) list * terminal (* list pattern *) + | P_record of (fpat) list * bool (* struct pattern *) + | P_vector of (pat) list (* vector pattern *) + | P_vector_indexed of ((int * pat)) list (* vector pattern (with explicit indices) *) + | P_vector_concat of (pat) list (* concatenated vector pattern *) + | P_tup of (pat) list (* tuple pattern *) + | P_list of (pat) list (* list pattern *) and pat = P_aux of pat_aux * l and fpat_aux = (* Field pattern *) - FP_Fpat of id * terminal * pat + FP_Fpat of id * pat and fpat = FP_aux of fpat_aux * l @@ -211,53 +211,53 @@ typschm = type exp_aux = (* Expression *) - E_block of terminal * (exp * terminal) list * terminal (* block (parsing conflict with structs?) *) + E_block of (exp) list (* block (parsing conflict with structs?) *) | E_id of id (* identifier *) | E_lit of lit (* literal constant *) - | E_cast of terminal * atyp * terminal * exp (* cast *) + | E_cast of atyp * exp (* cast *) | E_app of exp * (exp) list (* function application *) | E_app_infix of exp * id * exp (* infix function application *) - | E_tuple of terminal * (exp * terminal) list * terminal (* tuple *) - | E_if of terminal * exp * terminal * exp * terminal * exp (* conditional *) - | E_vector of terminal * (exp * terminal) list * terminal (* vector (indexed from 0) *) - | E_vector_indexed of terminal * (((terminal * int) * terminal * exp) * terminal) list * terminal (* vector (indexed consecutively) *) - | E_vector_access of exp * terminal * exp * terminal (* vector access *) - | E_vector_subrange of exp * terminal * exp * terminal * exp * terminal (* subvector extraction *) - | E_vector_update of terminal * exp * terminal * exp * terminal * exp * terminal (* vector functional update *) - | E_vector_update_subrange of terminal * exp * terminal * exp * terminal * exp * terminal * exp * terminal (* vector subrange update (with vector) *) - | E_list of terminal * (exp * terminal) list * terminal (* list *) - | E_cons of exp * terminal * exp (* cons *) - | E_record of terminal * fexps * terminal (* struct *) - | E_record_update of terminal * exp * terminal * fexps * terminal (* functional update of struct *) - | E_field of exp * terminal * id (* field projection from struct *) - | E_case of terminal * exp * terminal * ((terminal * pexp)) list * terminal (* pattern matching *) - | E_let of letbind * terminal * exp (* let expression *) - | E_assign of exp * terminal * exp (* imperative assignment *) + | E_tuple of (exp) list (* tuple *) + | E_if of exp * exp * exp (* conditional *) + | E_vector of (exp) list (* vector (indexed from 0) *) + | E_vector_indexed of ((int * exp)) list (* vector (indexed consecutively) *) + | E_vector_access of exp * exp (* vector access *) + | E_vector_subrange of exp * exp * exp (* subvector extraction *) + | E_vector_update of exp * exp * exp (* vector functional update *) + | E_vector_update_subrange of exp * exp * exp * exp (* vector subrange update (with vector) *) + | E_list of (exp) list (* list *) + | E_cons of exp * exp (* cons *) + | E_record of fexps (* struct *) + | E_record_update of exp * fexps (* functional update of struct *) + | E_field of exp * id (* field projection from struct *) + | E_case of exp * (pexp) list (* pattern matching *) + | E_let of letbind * exp (* let expression *) + | E_assign of exp * exp (* imperative assignment *) and exp = E_aux of exp_aux * l and fexp_aux = (* Field-expression *) - FE_Fexp of id * terminal * exp + FE_Fexp of id * exp and fexp = FE_aux of fexp_aux * l and fexps_aux = (* Field-expression list *) - FES_Fexps of (fexp * terminal) list * terminal * bool + FES_Fexps of (fexp) list * bool and fexps = FES_aux of fexps_aux * l and pexp_aux = (* Pattern match *) - Pat_exp of pat * terminal * exp + Pat_exp of pat * exp and pexp = Pat_aux of pexp_aux * l and letbind_aux = (* Let binding *) - LB_val_explicit of typschm * pat * terminal * exp (* value binding, explicit type (pat must be total) *) - | LB_val_implicit of terminal * pat * terminal * exp (* value binding, implicit type (pat must be total) *) + LB_val_explicit of typschm * pat * exp (* value binding, explicit type (pat must be total) *) + | LB_val_implicit of pat * exp (* value binding, implicit type (pat must be total) *) and letbind = LB_aux of letbind_aux * l @@ -266,13 +266,13 @@ and letbind = type naming_scheme_opt_aux = (* Optional variable-naming-scheme specification for variables of defined type *) Name_sect_none - | Name_sect_some of terminal * terminal * terminal * terminal * string * terminal + | Name_sect_some of string type rec_opt_aux = (* Optional recursive annotation for functions *) Rec_nonrec (* non-recursive *) - | Rec_rec of terminal (* recursive *) + | Rec_rec (* recursive *) type @@ -283,7 +283,7 @@ tannot_opt_aux = (* Optional type annotation for functions *) type funcl_aux = (* Function clause *) - FCL_Funcl of id * pat * terminal * exp + FCL_Funcl of id * pat * exp type @@ -294,9 +294,9 @@ effects_opt_aux = (* Optional effect annotation for functions *) type index_range_aux = (* index specification, for bitfields in register types *) - BF_single of (terminal * int) (* single index *) - | BF_range of (terminal * int) * terminal * (terminal * int) (* index range *) - | BF_concat of index_range * terminal * index_range (* concatenation of index ranges *) + BF_single of int (* single index *) + | BF_range of int * int (* index range *) + | BF_concat of index_range * index_range (* concatenation of index ranges *) and index_range = BF_aux of index_range_aux * l @@ -329,27 +329,27 @@ effects_opt = type default_typing_spec_aux = (* Default kinding or typing assumption *) - DT_kind of terminal * base_kind * id - | DT_typ of terminal * typschm * id + DT_kind of base_kind * id + | DT_typ of typschm * id type type_def_aux = (* Type definition body *) - TD_abbrev of terminal * id * naming_scheme_opt * terminal * typschm (* type abbreviation *) - | TD_record of terminal * id * naming_scheme_opt * terminal * terminal * terminal * typquant * terminal * ((atyp * id) * terminal) list * terminal * bool * terminal (* struct type definition *) - | TD_variant of terminal * id * naming_scheme_opt * terminal * terminal * terminal * typquant * terminal * ((atyp * id) * terminal) list * terminal * bool * terminal (* union type definition *) - | TD_enum of terminal * id * naming_scheme_opt * terminal * terminal * terminal * (id * terminal) list * terminal * bool * terminal (* enumeration type definition *) - | TD_register of terminal * id * terminal * terminal * terminal * terminal * atyp * terminal * atyp * terminal * terminal * ((index_range * terminal * id) * terminal) list * terminal (* register mutable bitfield type definition *) + TD_abbrev of id * naming_scheme_opt * typschm (* type abbreviation *) + | TD_record of id * naming_scheme_opt * typquant * ((atyp * id)) list * bool (* struct type definition *) + | TD_variant of id * naming_scheme_opt * typquant * ((atyp * id)) list * bool (* union type definition *) + | TD_enum of id * naming_scheme_opt * (id) list * bool (* enumeration type definition *) + | TD_register of id * atyp * atyp * ((index_range * id)) list (* register mutable bitfield type definition *) type val_spec_aux = (* Value type specification *) - VS_val_spec of terminal * typschm * id + VS_val_spec of typschm * id type fundef_aux = (* Function definition *) - FD_function of terminal * rec_opt * tannot_opt * effects_opt * (funcl * terminal) list + FD_function of rec_opt * tannot_opt * effects_opt * (funcl) list type @@ -379,12 +379,12 @@ def_aux = (* Top-level definition *) | DEF_val of letbind (* value definition *) | DEF_spec of val_spec (* top-level type constraint *) | DEF_default of default_typing_spec (* default kind and type assumptions *) - | DEF_reg_dec of terminal * atyp * id (* register declaration *) - | DEF_scattered_function of terminal * terminal * rec_opt * tannot_opt * effects_opt * id (* scattered function definition header *) - | DEF_scattered_funcl of terminal * terminal * funcl (* scattered function definition clause *) - | DEF_scattered_variant of terminal * terminal * id * naming_scheme_opt * terminal * terminal * terminal * typquant (* scattered union definition header *) - | DEF_scattered_unioncl of terminal * id * terminal * atyp * id (* scattered union definition member *) - | DEF_scattered_end of terminal * id (* scattered definition end *) + | DEF_reg_dec of atyp * id (* register declaration *) + | DEF_scattered_function of rec_opt * tannot_opt * effects_opt * id (* scattered function definition header *) + | DEF_scattered_funcl of funcl (* scattered function definition clause *) + | DEF_scattered_variant of id * naming_scheme_opt * typquant (* scattered union definition header *) + | DEF_scattered_unioncl of id * atyp * id (* scattered union definition member *) + | DEF_scattered_end of id (* scattered definition end *) type @@ -394,33 +394,33 @@ def = type typ_lib_aux = (* library types and syntactic sugar for them *) - Typ_lib_unit of terminal (* unit type with value $()$ *) - | Typ_lib_bool of terminal (* booleans $_$ and $_$ *) - | Typ_lib_bit of terminal (* pure bit values (not mutable bits) *) - | Typ_lib_nat of terminal (* natural numbers 0,1,2,... *) - | Typ_lib_string of terminal * string (* UTF8 strings *) - | Typ_lib_enum of terminal * terminal * terminal * terminal (* natural numbers _ .. _+_-1, ordered by order *) - | Typ_lib_enum1 of terminal * terminal * terminal (* sugar for \texttt{enum nexp 0 inc} *) - | Typ_lib_enum2 of terminal * terminal * terminal * terminal * terminal (* sugar for \texttt{enum (nexp'-nexp+1) nexp inc} or \texttt{enum (nexp-nexp'+1) nexp' dec} *) - | Typ_lib_vector of terminal * terminal * terminal * terminal * atyp (* vector of atyp, indexed by natural range *) - | Typ_lib_vector2 of atyp * terminal * terminal * terminal (* sugar for vector indexed by [ atyp ] *) - | Typ_lib_vector3 of atyp * terminal * terminal * terminal * terminal * terminal (* sugar for vector indexed by [ atyp.._ ] *) - | Typ_lib_list of terminal * atyp (* list of atyp *) - | Typ_lib_set of terminal * atyp (* finite set of atyp *) - | Typ_lib_reg of terminal * atyp (* mutable register components holding atyp *) + Typ_lib_unit (* unit type with value $()$ *) + | Typ_lib_bool (* booleans $_$ and $_$ *) + | Typ_lib_bit (* pure bit values (not mutable bits) *) + | Typ_lib_nat (* natural numbers 0,1,2,... *) + | Typ_lib_string of string (* UTF8 strings *) + | Typ_lib_enum (* natural numbers _ .. _+_-1, ordered by order *) + | Typ_lib_enum1 (* sugar for \texttt{enum nexp 0 inc} *) + | Typ_lib_enum2 (* sugar for \texttt{enum (nexp'-nexp+1) nexp inc} or \texttt{enum (nexp-nexp'+1) nexp' dec} *) + | Typ_lib_vector of atyp (* vector of atyp, indexed by natural range *) + | Typ_lib_vector2 of atyp (* sugar for vector indexed by [ atyp ] *) + | Typ_lib_vector3 of atyp (* sugar for vector indexed by [ atyp.._ ] *) + | Typ_lib_list of atyp (* list of atyp *) + | Typ_lib_set of atyp (* finite set of atyp *) + | Typ_lib_reg of atyp (* mutable register components holding atyp *) type ctor_def_aux = (* Datatype constructor definition clause *) - CT_ct of id * terminal * typschm + CT_ct of id * typschm type lexp_aux = (* lvalue expression *) LEXP_id of id (* identifier *) - | LEXP_vector of lexp * terminal * exp * terminal (* vector element *) - | LEXP_vector_range of lexp * terminal * exp * terminal * exp * terminal (* subvector *) - | LEXP_field of lexp * terminal * id (* struct field *) + | LEXP_vector of lexp * exp (* vector element *) + | LEXP_vector_range of lexp * exp * exp (* subvector *) + | LEXP_field of lexp * id (* struct field *) and lexp = LEXP_aux of lexp_aux * l |
