@@ -54,7 +54,7 @@ pub fn token_to_str(reader: reader, token: &token::Token) -> ~str {
54
54
}
55
55
56
56
pub impl Parser {
57
- fn unexpected_last ( t : & token:: Token ) -> ! {
57
+ fn unexpected_last ( & self , t : & token:: Token ) -> ! {
58
58
self . span_fatal (
59
59
* self . last_span ,
60
60
fmt ! (
@@ -64,7 +64,7 @@ pub impl Parser {
64
64
) ;
65
65
}
66
66
67
- fn unexpected ( ) -> ! {
67
+ fn unexpected ( & self ) -> ! {
68
68
self . fatal (
69
69
fmt ! (
70
70
"unexpected token: `%s`" ,
@@ -75,7 +75,7 @@ pub impl Parser {
75
75
76
76
// expect and consume the token t. Signal an error if
77
77
// the next token is not t.
78
- fn expect ( t : & token:: Token ) {
78
+ fn expect ( & self , t : & token:: Token ) {
79
79
if * self . token == * t {
80
80
self . bump ( ) ;
81
81
} else {
@@ -89,7 +89,7 @@ pub impl Parser {
89
89
}
90
90
}
91
91
92
- fn parse_ident ( ) -> ast:: ident {
92
+ fn parse_ident ( & self ) -> ast:: ident {
93
93
self . check_strict_keywords ( ) ;
94
94
self . check_reserved_keywords ( ) ;
95
95
match * self . token {
@@ -113,50 +113,50 @@ pub impl Parser {
113
113
}
114
114
}
115
115
116
- fn parse_path_list_ident ( ) -> ast:: path_list_ident {
116
+ fn parse_path_list_ident ( & self ) -> ast:: path_list_ident {
117
117
let lo = self . span . lo ;
118
118
let ident = self . parse_ident ( ) ;
119
119
let hi = self . span . hi ;
120
120
spanned ( lo, hi, ast:: path_list_ident_ { name : ident,
121
121
id : self . get_id ( ) } )
122
122
}
123
123
124
- fn parse_value_ident ( ) -> ast:: ident {
124
+ fn parse_value_ident ( & self ) -> ast:: ident {
125
125
return self . parse_ident ( ) ;
126
126
}
127
127
128
128
// consume token 'tok' if it exists. Returns true if the given
129
129
// token was present, false otherwise.
130
- fn eat ( tok : & token:: Token ) -> bool {
130
+ fn eat ( & self , tok : & token:: Token ) -> bool {
131
131
return if * self . token == * tok { self . bump ( ) ; true } else { false } ;
132
132
}
133
133
134
134
// Storing keywords as interned idents instead of strings would be nifty.
135
135
136
136
// A sanity check that the word we are asking for is a known keyword
137
- fn require_keyword ( word : & ~str ) {
137
+ fn require_keyword ( & self , word : & ~str ) {
138
138
if !self . keywords . contains_key ( word) {
139
139
self . bug ( fmt ! ( "unknown keyword: %s" , * word) ) ;
140
140
}
141
141
}
142
142
143
- pure fn token_is_word ( word : & ~str , tok : & token:: Token ) -> bool {
143
+ pure fn token_is_word ( & self , word : & ~str , tok : & token:: Token ) -> bool {
144
144
match * tok {
145
145
token:: IDENT ( sid, false ) => { * self . id_to_str ( sid) == * word }
146
146
_ => { false }
147
147
}
148
148
}
149
149
150
- fn token_is_keyword ( word : & ~str , tok : & token:: Token ) -> bool {
150
+ fn token_is_keyword ( & self , word : & ~str , tok : & token:: Token ) -> bool {
151
151
self . require_keyword ( word) ;
152
152
self . token_is_word ( word, tok)
153
153
}
154
154
155
- fn is_keyword ( word : & ~str ) -> bool {
155
+ fn is_keyword ( & self , word : & ~str ) -> bool {
156
156
self . token_is_keyword ( word, & copy * self . token )
157
157
}
158
158
159
- fn is_any_keyword ( tok : & token:: Token ) -> bool {
159
+ fn is_any_keyword ( & self , tok : & token:: Token ) -> bool {
160
160
match * tok {
161
161
token:: IDENT ( sid, false ) => {
162
162
self . keywords . contains_key ( self . id_to_str ( sid) )
@@ -165,7 +165,7 @@ pub impl Parser {
165
165
}
166
166
}
167
167
168
- fn eat_keyword ( word : & ~str ) -> bool {
168
+ fn eat_keyword ( & self , word : & ~str ) -> bool {
169
169
self . require_keyword ( word) ;
170
170
let is_kw = match * self . token {
171
171
token:: IDENT ( sid, false ) => * word == * self . id_to_str ( sid) ,
@@ -175,7 +175,7 @@ pub impl Parser {
175
175
is_kw
176
176
}
177
177
178
- fn expect_keyword ( word : & ~str ) {
178
+ fn expect_keyword ( & self , word : & ~str ) {
179
179
self . require_keyword ( word) ;
180
180
if !self . eat_keyword ( word) {
181
181
self . fatal (
@@ -188,11 +188,11 @@ pub impl Parser {
188
188
}
189
189
}
190
190
191
- fn is_strict_keyword ( word : & ~str ) -> bool {
191
+ fn is_strict_keyword ( & self , word : & ~str ) -> bool {
192
192
self . strict_keywords . contains_key ( word)
193
193
}
194
194
195
- fn check_strict_keywords ( ) {
195
+ fn check_strict_keywords ( & self ) {
196
196
match * self . token {
197
197
token:: IDENT ( _, false ) => {
198
198
let w = token_to_str ( self . reader , & copy * self . token ) ;
@@ -202,17 +202,17 @@ pub impl Parser {
202
202
}
203
203
}
204
204
205
- fn check_strict_keywords_ ( w : & ~str ) {
205
+ fn check_strict_keywords_ ( & self , w : & ~str ) {
206
206
if self . is_strict_keyword ( w) {
207
207
self . fatal ( fmt ! ( "found `%s` in ident position" , * w) ) ;
208
208
}
209
209
}
210
210
211
- fn is_reserved_keyword ( word : & ~str ) -> bool {
211
+ fn is_reserved_keyword ( & self , word : & ~str ) -> bool {
212
212
self . reserved_keywords . contains_key ( word)
213
213
}
214
214
215
- fn check_reserved_keywords ( ) {
215
+ fn check_reserved_keywords ( & self ) {
216
216
match * self . token {
217
217
token:: IDENT ( _, false ) => {
218
218
let w = token_to_str ( self . reader , & copy * self . token ) ;
@@ -222,15 +222,15 @@ pub impl Parser {
222
222
}
223
223
}
224
224
225
- fn check_reserved_keywords_ ( w : & ~str ) {
225
+ fn check_reserved_keywords_ ( & self , w : & ~str ) {
226
226
if self . is_reserved_keyword ( w) {
227
227
self . fatal ( fmt ! ( "`%s` is a reserved keyword" , * w) ) ;
228
228
}
229
229
}
230
230
231
231
// expect and consume a GT. if a >> is seen, replace it
232
232
// with a single > and continue.
233
- fn expect_gt ( ) {
233
+ fn expect_gt ( & self ) {
234
234
if * self . token == token:: GT {
235
235
self . bump ( ) ;
236
236
} else if * self . token == token:: BINOP ( token:: SHR ) {
@@ -252,6 +252,7 @@ pub impl Parser {
252
252
// parse a sequence bracketed by '<' and '>', stopping
253
253
// before the '>'.
254
254
fn parse_seq_to_before_gt < T : Copy > (
255
+ & self ,
255
256
sep : Option < token:: Token > ,
256
257
f : fn ( & Parser ) -> T
257
258
) -> OptVec < T > {
@@ -266,12 +267,13 @@ pub impl Parser {
266
267
}
267
268
_ => ( )
268
269
}
269
- v. push ( f ( & self ) ) ;
270
+ v. push ( f ( self ) ) ;
270
271
}
271
272
return v;
272
273
}
273
274
274
275
fn parse_seq_to_gt < T : Copy > (
276
+ & self ,
275
277
sep : Option < token:: Token > ,
276
278
f : fn ( & Parser ) -> T
277
279
) -> OptVec < T > {
@@ -284,6 +286,7 @@ pub impl Parser {
284
286
// f must consume tokens until reaching the next separator or
285
287
// closing bracket.
286
288
fn parse_seq_to_end < T : Copy > (
289
+ & self ,
287
290
ket : & token:: Token ,
288
291
sep : SeqSep ,
289
292
f : fn ( & Parser ) -> T
@@ -297,6 +300,7 @@ pub impl Parser {
297
300
// f must consume tokens until reaching the next separator or
298
301
// closing bracket.
299
302
fn parse_seq_to_before_end < T : Copy > (
303
+ & self ,
300
304
ket : & token:: Token ,
301
305
sep : SeqSep ,
302
306
f : fn ( & Parser ) -> T
@@ -312,7 +316,7 @@ pub impl Parser {
312
316
_ => ( )
313
317
}
314
318
if sep. trailing_sep_allowed && * self . token == * ket { break ; }
315
- v. push ( f ( & self ) ) ;
319
+ v. push ( f ( self ) ) ;
316
320
}
317
321
return v;
318
322
}
@@ -321,6 +325,7 @@ pub impl Parser {
321
325
// f must consume tokens until reaching the next separator or
322
326
// closing bracket.
323
327
fn parse_unspanned_seq < T : Copy > (
328
+ & self ,
324
329
bra : & token:: Token ,
325
330
ket : & token:: Token ,
326
331
sep : SeqSep ,
@@ -335,6 +340,7 @@ pub impl Parser {
335
340
// NB: Do not use this function unless you actually plan to place the
336
341
// spanned list in the AST.
337
342
fn parse_seq < T : Copy > (
343
+ & self ,
338
344
bra : & token:: Token ,
339
345
ket : & token:: Token ,
340
346
sep : SeqSep ,
0 commit comments