summaryrefslogtreecommitdiff
path: root/src/parse_ast.ml
diff options
context:
space:
mode:
authorKathy Gray2013-07-26 13:00:56 +0100
committerKathy Gray2013-07-26 13:00:56 +0100
commit37a4c2ebcfab7834c17fe44703a71da277cb285e (patch)
tree366ec0c11ec8a86009aff7986862df046ca0f202 /src/parse_ast.ml
parentf79e3c770ab7b772edf0cd54993c059c4d7b969a (diff)
Remove white space/terminal tracking
Diffstat (limited to 'src/parse_ast.ml')
-rw-r--r--src/parse_ast.ml226
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