diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-02-24 15:41:54 -0800 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-02-25 22:52:57 -0800 |
| commit | 272c25e9383be490c5fc67cb09773fe2563ef3a7 (patch) | |
| tree | 912c59905180812fe44c6d6a8e9a2b68434d29c3 /src/libsyntax/parse/common.rs | |
| parent | 3635480b157389ce3e65bb5b9ccd0ced8e21e1c7 (diff) | |
| download | rust-272c25e9383be490c5fc67cb09773fe2563ef3a7.tar.gz rust-272c25e9383be490c5fc67cb09773fe2563ef3a7.zip | |
libsyntax: minor cleanup
Diffstat (limited to 'src/libsyntax/parse/common.rs')
| -rw-r--r-- | src/libsyntax/parse/common.rs | 133 |
1 files changed, 88 insertions, 45 deletions
diff --git a/src/libsyntax/parse/common.rs b/src/libsyntax/parse/common.rs index aa4ffb7fc7a..c7f029e9733 100644 --- a/src/libsyntax/parse/common.rs +++ b/src/libsyntax/parse/common.rs @@ -29,20 +29,20 @@ pub struct SeqSep { pub fn seq_sep_trailing_disallowed(t: token::Token) -> SeqSep { SeqSep { - sep: option::Some(t), - trailing_sep_allowed: false + sep: Some(t), + trailing_sep_allowed: false, } } pub fn seq_sep_trailing_allowed(t: token::Token) -> SeqSep { SeqSep { - sep: option::Some(t), - trailing_sep_allowed: true + sep: Some(t), + trailing_sep_allowed: true, } } pub fn seq_sep_none() -> SeqSep { SeqSep { - sep: option::None, - trailing_sep_allowed: false + sep: None, + trailing_sep_allowed: false, } } @@ -54,12 +54,20 @@ pub impl Parser { fn unexpected_last(t: token::Token) -> ! { self.span_fatal( *self.last_span, - ~"unexpected token: `" + token_to_str(self.reader, t) + ~"`"); + fmt!( + "unexpected token: `%s`", + token_to_str(self.reader, t) + ) + ); } fn unexpected() -> ! { - self.fatal(~"unexpected token: `" - + token_to_str(self.reader, *self.token) + ~"`"); + self.fatal( + fmt!( + "unexpected token: `%s`", + token_to_str(self.reader, *self.token) + ) + ); } // expect and consume the token t. Signal an error if @@ -81,12 +89,23 @@ pub impl Parser { self.check_strict_keywords(); self.check_reserved_keywords(); match *self.token { - token::IDENT(i, _) => { self.bump(); return i; } - token::INTERPOLATED(token::nt_ident(*)) => { self.bug( - ~"ident interpolation not converted to real token"); } - _ => { self.fatal(~"expected ident, found `" - + token_to_str(self.reader, *self.token) - + ~"`"); } + token::IDENT(i, _) => { + self.bump(); + i + } + token::INTERPOLATED(token::nt_ident(*)) => { + self.bug( + ~"ident interpolation not converted to real token" + ); + } + _ => { + self.fatal( + fmt!( + "expected ident, found `%s`", + token_to_str(self.reader, *self.token) + ) + ); + } } } @@ -155,9 +174,13 @@ pub impl Parser { fn expect_keyword(word: &~str) { self.require_keyword(word); if !self.eat_keyword(word) { - self.fatal(~"expected `" + *word + ~"`, found `" + - token_to_str(self.reader, *self.token) + - ~"`"); + self.fatal( + fmt!( + "expected `%s`, found `%s`", + *word, + token_to_str(self.reader, *self.token) + ) + ); } } @@ -177,7 +200,7 @@ pub impl Parser { fn check_strict_keywords_(w: &~str) { if self.is_strict_keyword(w) { - self.fatal(~"found `" + *w + ~"` in ident position"); + self.fatal(fmt!("found `%s` in ident position", *w)); } } @@ -197,7 +220,7 @@ pub impl Parser { fn check_reserved_keywords_(w: &~str) { if self.is_reserved_keyword(w) { - self.fatal(~"`" + *w + ~"` is a reserved keyword"); + self.fatal(fmt!("`%s` is a reserved keyword", *w)); } } @@ -207,9 +230,11 @@ pub impl Parser { if *self.token == token::GT { self.bump(); } else if *self.token == token::BINOP(token::SHR) { - self.replace_token(token::GT, - self.span.lo + BytePos(1u), - self.span.hi); + self.replace_token( + token::GT, + self.span.lo + BytePos(1u), + self.span.hi + ); } else { let mut s: ~str = ~"expected `"; s += token_to_str(self.reader, token::GT); @@ -222,8 +247,10 @@ pub impl Parser { // parse a sequence bracketed by '<' and '>', stopping // before the '>'. - fn parse_seq_to_before_gt<T:Copy>(sep: Option<token::Token>, - f: fn(Parser) -> T) -> ~[T] { + fn parse_seq_to_before_gt<T: Copy>( + sep: Option<token::Token>, + f: fn(Parser) -> T + ) -> ~[T] { let mut first = true; let mut v = ~[]; while *self.token != token::GT @@ -241,8 +268,10 @@ pub impl Parser { return v; } - fn parse_seq_to_gt<T:Copy>(sep: Option<token::Token>, - f: fn(Parser) -> T) -> ~[T] { + fn parse_seq_to_gt<T: Copy>( + sep: Option<token::Token>, + f: fn(Parser) -> T + ) -> ~[T] { let v = self.parse_seq_to_before_gt(sep, f); self.expect_gt(); @@ -250,8 +279,10 @@ pub impl Parser { } // parse a sequence bracketed by '<' and '>' - fn parse_seq_lt_gt<T:Copy>(sep: Option<token::Token>, - f: fn(Parser) -> T) -> spanned<~[T]> { + fn parse_seq_lt_gt<T: Copy>( + sep: Option<token::Token>, + f: fn(Parser) -> T + ) -> spanned<~[T]> { let lo = self.span.lo; self.expect(&token::LT); let result = self.parse_seq_to_before_gt::<T>(sep, f); @@ -263,18 +294,24 @@ pub impl Parser { // parse a sequence, including the closing delimiter. The function // f must consume tokens until reaching the next separator or // closing bracket. - fn parse_seq_to_end<T:Copy>(ket: token::Token, sep: SeqSep, - f: fn(Parser) -> T) -> ~[T] { + fn parse_seq_to_end<T: Copy>( + ket: token::Token, + sep: SeqSep, + f: fn(Parser) -> T + ) -> ~[T] { let val = self.parse_seq_to_before_end(ket, sep, f); self.bump(); - return val; + val } // parse a sequence, not including the closing delimiter. The function // f must consume tokens until reaching the next separator or // closing bracket. - fn parse_seq_to_before_end<T:Copy>(ket: token::Token, sep: SeqSep, - f: fn(Parser) -> T) -> ~[T] { + fn parse_seq_to_before_end<T: Copy>( + ket: token::Token, + sep: SeqSep, + f: fn(Parser) -> T + ) -> ~[T] { let mut first: bool = true; let mut v: ~[T] = ~[]; while *self.token != ket { @@ -288,31 +325,37 @@ pub impl Parser { if sep.trailing_sep_allowed && *self.token == ket { break; } v.push(f(self)); } - return v; + v } // parse a sequence, including the closing delimiter. The function // f must consume tokens until reaching the next separator or // closing bracket. - fn parse_unspanned_seq<T:Copy>(+bra: token::Token, - +ket: token::Token, - sep: SeqSep, - f: fn(Parser) -> T) -> ~[T] { + fn parse_unspanned_seq<T: Copy>( + +bra: token::Token, + +ket: token::Token, + sep: SeqSep, + f: fn(Parser) -> T + ) -> ~[T] { self.expect(&bra); - let result = self.parse_seq_to_before_end::<T>(ket, sep, f); + let result = self.parse_seq_to_before_end(ket, sep, f); self.bump(); - return result; + result } // NB: Do not use this function unless you actually plan to place the // spanned list in the AST. - fn parse_seq<T:Copy>(bra: token::Token, ket: token::Token, sep: SeqSep, - f: fn(Parser) -> T) -> spanned<~[T]> { + fn parse_seq<T: Copy>( + +bra: token::Token, + +ket: token::Token, + sep: SeqSep, + f: fn(Parser) -> T + ) -> spanned<~[T]> { let lo = self.span.lo; self.expect(&bra); - let result = self.parse_seq_to_before_end::<T>(ket, sep, f); + let result = self.parse_seq_to_before_end(ket, sep, f); let hi = self.span.hi; self.bump(); - return spanned(lo, hi, result); + spanned(lo, hi, result) } } |
