diff --git a/src/comp/front/lexer.rs b/src/comp/front/lexer.rs index 3e88c01a292..dd0bdb3a53a 100644 --- a/src/comp/front/lexer.rs +++ b/src/comp/front/lexer.rs @@ -674,12 +674,19 @@ fn next_token(&reader rdr) -> token::token { } case ('|') { - if (rdr.next() == '|') { - rdr.bump(); - rdr.bump(); - ret token::OROR; - } else { - ret binop(rdr, token::OR); + alt (rdr.next()) { + case ('|') { + rdr.bump(); + rdr.bump(); + ret token::OROR; + } + case ('>') { + rdr.bump(); + ret token::RECV; + } + case (_) { + ret binop(rdr, token::OR); + } } } diff --git a/src/comp/front/token.rs b/src/comp/front/token.rs index 7c778ccaad3..1dcaac884b8 100644 --- a/src/comp/front/token.rs +++ b/src/comp/front/token.rs @@ -49,6 +49,7 @@ tag token { QUES; RARROW; SEND; + RECV; LARROW; LPAREN; RPAREN;