@@ -75,52 +75,28 @@ fn parse_ty_str(str rep, str_def sd) -> @ty.t {
75
75
}
76
76
77
77
fn parse_ty ( @pstate st , str_def sd) -> @ty. t {
78
- ret @rec( struct=parse_sty ( st, sd) ,
79
- cname=option. none [ str] ) ;
80
- }
81
-
82
- fn parse_mt ( @pstate st , str_def sd) -> ty . mt {
83
- auto mut;
84
- alt ( peek ( st) as char ) {
85
- case ( 'm' ) { next ( st) ; mut = ast. mut ; }
86
- case ( '?' ) { next ( st) ; mut = ast. maybe_mut ; }
87
- case ( _) { mut=ast. imm ; }
88
- }
89
- ret rec( ty=parse_ty ( st, sd) , mut=mut) ;
90
- }
91
-
92
- fn parse_def ( @pstate st , str_def sd) -> ast. def_id {
93
- auto def = "" ;
94
- while ( peek ( st) as char != '|' ) {
95
- def += _str. unsafe_from_byte ( next ( st) ) ;
96
- }
97
- st. pos = st. pos + 1 u;
98
- ret sd( def) ;
99
- }
100
-
101
- fn parse_sty ( @pstate st , str_def sd) -> ty. sty {
102
78
alt ( next ( st) as char ) {
103
- case ( 'n' ) { ret ty. ty_nil ; }
104
- case ( 'b' ) { ret ty. ty_bool ; }
105
- case ( 'i' ) { ret ty. ty_int ; }
106
- case ( 'u' ) { ret ty. ty_uint ; }
107
- case ( 'l' ) { ret ty. ty_float ; }
79
+ case ( 'n' ) { ret ty. mk_nil ( ) ; }
80
+ case ( 'b' ) { ret ty. mk_bool ( ) ; }
81
+ case ( 'i' ) { ret ty. mk_int ( ) ; }
82
+ case ( 'u' ) { ret ty. mk_uint ( ) ; }
83
+ case ( 'l' ) { ret ty. mk_float ( ) ; }
108
84
case ( 'M' ) {
109
85
alt ( next ( st) as char ) {
110
- case ( 'b' ) { ret ty. ty_machine ( common. ty_u8 ) ; }
111
- case ( 'w' ) { ret ty. ty_machine ( common. ty_u16 ) ; }
112
- case ( 'l' ) { ret ty. ty_machine ( common. ty_u32 ) ; }
113
- case ( 'd' ) { ret ty. ty_machine ( common. ty_u64 ) ; }
114
- case ( 'B' ) { ret ty. ty_machine ( common. ty_i8 ) ; }
115
- case ( 'W' ) { ret ty. ty_machine ( common. ty_i16 ) ; }
116
- case ( 'L' ) { ret ty. ty_machine ( common. ty_i32 ) ; }
117
- case ( 'D' ) { ret ty. ty_machine ( common. ty_i64 ) ; }
118
- case ( 'f' ) { ret ty. ty_machine ( common. ty_f32 ) ; }
119
- case ( 'F' ) { ret ty. ty_machine ( common. ty_f64 ) ; }
86
+ case ( 'b' ) { ret ty. mk_mach ( common. ty_u8 ) ; }
87
+ case ( 'w' ) { ret ty. mk_mach ( common. ty_u16 ) ; }
88
+ case ( 'l' ) { ret ty. mk_mach ( common. ty_u32 ) ; }
89
+ case ( 'd' ) { ret ty. mk_mach ( common. ty_u64 ) ; }
90
+ case ( 'B' ) { ret ty. mk_mach ( common. ty_i8 ) ; }
91
+ case ( 'W' ) { ret ty. mk_mach ( common. ty_i16 ) ; }
92
+ case ( 'L' ) { ret ty. mk_mach ( common. ty_i32 ) ; }
93
+ case ( 'D' ) { ret ty. mk_mach ( common. ty_i64 ) ; }
94
+ case ( 'f' ) { ret ty. mk_mach ( common. ty_f32 ) ; }
95
+ case ( 'F' ) { ret ty. mk_mach ( common. ty_f64 ) ; }
120
96
}
121
97
}
122
- case ( 'c' ) { ret ty. ty_char ; }
123
- case ( 's' ) { ret ty. ty_str ; }
98
+ case ( 'c' ) { ret ty. mk_char ( ) ; }
99
+ case ( 's' ) { ret ty. mk_str ( ) ; }
124
100
case ( 't' ) {
125
101
check ( next ( st) as char == '[' ) ;
126
102
auto def = parse_def ( st, sd) ;
@@ -129,21 +105,21 @@ fn parse_sty(@pstate st, str_def sd) -> ty.sty {
129
105
params += vec ( parse_ty ( st, sd) ) ;
130
106
}
131
107
st. pos = st. pos + 1 u;
132
- ret ty. ty_tag ( def, params) ;
108
+ ret ty. mk_tag ( def, params) ;
133
109
}
134
- case ( 'p' ) { ret ty. ty_param ( parse_int ( st) as uint ) ; }
135
- case ( '@' ) { ret ty. ty_box ( parse_mt ( st, sd) ) ; }
136
- case ( 'V' ) { ret ty. ty_vec ( parse_mt ( st, sd) ) ; }
137
- case ( 'P' ) { ret ty. ty_port ( parse_ty ( st, sd) ) ; }
138
- case ( 'C' ) { ret ty. ty_chan ( parse_ty ( st, sd) ) ; }
110
+ case ( 'p' ) { ret ty. mk_param ( parse_int ( st) as uint ) ; }
111
+ case ( '@' ) { ret ty. mk_box ( parse_mt ( st, sd) ) ; }
112
+ case ( 'V' ) { ret ty. mk_vec ( parse_mt ( st, sd) ) ; }
113
+ case ( 'P' ) { ret ty. mk_port ( parse_ty ( st, sd) ) ; }
114
+ case ( 'C' ) { ret ty. mk_chan ( parse_ty ( st, sd) ) ; }
139
115
case ( 'T' ) {
140
116
check ( next ( st) as char == '[' ) ;
141
117
let vec[ ty. mt ] params = vec ( ) ;
142
118
while ( peek ( st) as char != ']' ) {
143
119
params += vec ( parse_mt ( st, sd) ) ;
144
120
}
145
121
st. pos = st. pos + 1 u;
146
- ret ty. ty_tup ( params) ;
122
+ ret ty. mk_tup ( params) ;
147
123
}
148
124
case ( 'R' ) {
149
125
check ( next ( st) as char == '[' ) ;
@@ -157,15 +133,15 @@ fn parse_sty(@pstate st, str_def sd) -> ty.sty {
157
133
fields += vec ( rec ( ident=name, mt=parse_mt ( st, sd) ) ) ;
158
134
}
159
135
st. pos = st. pos + 1 u;
160
- ret ty. ty_rec ( fields) ;
136
+ ret ty. mk_rec ( fields) ;
161
137
}
162
138
case ( 'F' ) {
163
139
auto func = parse_ty_fn ( st, sd) ;
164
- ret ty. ty_fn ( ast. proto_fn , func. _0 , func. _1 ) ;
140
+ ret ty. mk_fn ( ast. proto_fn , func. _0 , func. _1 ) ;
165
141
}
166
142
case ( 'W' ) {
167
143
auto func = parse_ty_fn ( st, sd) ;
168
- ret ty. ty_fn ( ast. proto_iter , func. _0 , func. _1 ) ;
144
+ ret ty. mk_fn ( ast. proto_iter , func. _0 , func. _1 ) ;
169
145
}
170
146
case ( 'N' ) {
171
147
auto abi;
@@ -175,7 +151,7 @@ fn parse_sty(@pstate st, str_def sd) -> ty.sty {
175
151
case ( 'l' ) { abi = ast. native_abi_llvm ; }
176
152
}
177
153
auto func = parse_ty_fn ( st, sd) ;
178
- ret ty. ty_native_fn ( abi, func. _0 , func. _1 ) ;
154
+ ret ty. mk_native_fn ( abi, func. _0 , func. _1 ) ;
179
155
}
180
156
case ( 'O' ) {
181
157
check ( next ( st) as char == '[' ) ;
@@ -197,12 +173,31 @@ fn parse_sty(@pstate st, str_def sd) -> ty.sty {
197
173
output=func. _1 ) ) ;
198
174
}
199
175
st. pos += 1 u;
200
- ret ty. ty_obj ( methods) ;
176
+ ret ty. mk_obj ( methods) ;
201
177
}
202
- case ( 'X' ) { ret ty. ty_var ( parse_int ( st) ) ; }
203
- case ( 'E' ) { ret ty. ty_native ; }
204
- case ( 'Y' ) { ret ty. ty_type ; }
178
+ case ( 'X' ) { ret ty. mk_var ( parse_int ( st) ) ; }
179
+ case ( 'E' ) { ret ty. mk_native ( ) ; }
180
+ case ( 'Y' ) { ret ty. mk_type ( ) ; }
181
+ }
182
+ }
183
+
184
+ fn parse_mt ( @pstate st , str_def sd) -> ty . mt {
185
+ auto mut;
186
+ alt ( peek ( st) as char ) {
187
+ case ( 'm' ) { next ( st) ; mut = ast. mut ; }
188
+ case ( '?' ) { next ( st) ; mut = ast. maybe_mut ; }
189
+ case ( _) { mut=ast. imm ; }
205
190
}
191
+ ret rec( ty=parse_ty ( st, sd) , mut=mut) ;
192
+ }
193
+
194
+ fn parse_def ( @pstate st , str_def sd) -> ast. def_id {
195
+ auto def = "" ;
196
+ while ( peek ( st) as char != '|' ) {
197
+ def += _str. unsafe_from_byte ( next ( st) ) ;
198
+ }
199
+ st. pos = st. pos + 1 u;
200
+ ret sd( def) ;
206
201
}
207
202
208
203
fn parse_int ( @pstate st ) -> int {
0 commit comments