From f0c730b819939f691076fec85319a6d11fa7b67d Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Fri, 20 Jun 2014 09:53:12 -0700 Subject: syntax: Parse GT tokens from `>=` and `>>=` The parser already has special logic for parsing `>` tokens from `>>`, and this commit extends the logic to the acquiring a `>` from the `>=` and `>>=` tokens as well. Closes #15043 --- src/libsyntax/parse/parser.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index ae2ec216bee..b56919c53c7 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -706,6 +706,16 @@ impl<'a> Parser<'a> { let lo = span.lo + BytePos(1); self.replace_token(token::GT, lo, span.hi) } + token::BINOPEQ(token::SHR) => { + let span = self.span; + let lo = span.lo + BytePos(1); + self.replace_token(token::GE, lo, span.hi) + } + token::GE => { + let span = self.span; + let lo = span.lo + BytePos(1); + self.replace_token(token::EQ, lo, span.hi) + } _ => { let gt_str = Parser::token_to_str(&token::GT); let this_token_str = self.this_token_to_str(); @@ -726,7 +736,9 @@ impl<'a> Parser<'a> { let mut first = true; let mut v = Vec::new(); while self.token != token::GT - && self.token != token::BINOP(token::SHR) { + && self.token != token::BINOP(token::SHR) + && self.token != token::GE + && self.token != token::BINOPEQ(token::SHR) { match sep { Some(ref t) => { if first { first = false; } -- cgit 1.4.1-3-g733a5