diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-02-28 07:25:31 -0800 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-02-28 07:25:31 -0800 |
| commit | 3953bdd812d73a51f9a7be4a1c57c60d56c6aa1a (patch) | |
| tree | 8dbdab63811771af7a14543a97636fc30ccc07f2 /src/libsyntax/parse/common.rs | |
| parent | 7f5d4cbda027482cfeb554c5bc30551377a668a2 (diff) | |
| parent | d0a12347dec3045eaf8dcded7add914d4491276f (diff) | |
| download | rust-3953bdd812d73a51f9a7be4a1c57c60d56c6aa1a.tar.gz rust-3953bdd812d73a51f9a7be4a1c57c60d56c6aa1a.zip | |
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
Diffstat (limited to 'src/libsyntax/parse/common.rs')
| -rw-r--r-- | src/libsyntax/parse/common.rs | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/src/libsyntax/parse/common.rs b/src/libsyntax/parse/common.rs index 28c5bf721a1..f538ed8030c 100644 --- a/src/libsyntax/parse/common.rs +++ b/src/libsyntax/parse/common.rs @@ -20,6 +20,9 @@ use core::option::{None, Option, Some}; use core::option; use std::oldmap::HashMap; +use opt_vec; +use opt_vec::OptVec; + // SeqSep : a sequence separator (token) // and whether a trailing separator is allowed. pub struct SeqSep { @@ -251,9 +254,9 @@ pub impl Parser { fn parse_seq_to_before_gt<T: Copy>( sep: Option<token::Token>, f: fn(&Parser) -> T - ) -> ~[T] { + ) -> OptVec<T> { let mut first = true; - let mut v = ~[]; + let mut v = opt_vec::Empty; while *self.token != token::GT && *self.token != token::BINOP(token::SHR) { match sep { @@ -265,33 +268,18 @@ pub impl Parser { } v.push(f(&self)); } - return v; } fn parse_seq_to_gt<T: Copy>( sep: Option<token::Token>, f: fn(&Parser) -> T - ) -> ~[T] { + ) -> OptVec<T> { let v = self.parse_seq_to_before_gt(sep, f); self.expect_gt(); - return v; } - // parse a sequence bracketed by '<' and '>' - 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); - let hi = self.span.hi; - self.expect_gt(); - return spanned(lo, hi, result); - } - // parse a sequence, including the closing delimiter. The function // f must consume tokens until reaching the next separator or // closing bracket. |
