Lines Matching defs:Precedence
964 pub(crate) enum Precedence {
980 impl Precedence {
983 BinOp::Add(_) | BinOp::Sub(_) => Precedence::Arithmetic,
984 BinOp::Mul(_) | BinOp::Div(_) | BinOp::Rem(_) => Precedence::Term,
985 BinOp::And(_) => Precedence::And,
986 BinOp::Or(_) => Precedence::Or,
987 BinOp::BitXor(_) => Precedence::BitXor,
988 BinOp::BitAnd(_) => Precedence::BitAnd,
989 BinOp::BitOr(_) => Precedence::BitOr,
990 BinOp::Shl(_) | BinOp::Shr(_) => Precedence::Shift,
996 | BinOp::Gt(_) => Precedence::Compare,
1006 | BinOp::ShrAssign(_) => Precedence::Assign,
1014 use super::precedence::Precedence;
1147 impl Copy for Precedence {}
1149 impl Clone for Precedence {
1155 impl PartialEq for Precedence {
1161 impl PartialOrd for Precedence {
1193 base: Precedence,
1198 Ok(op) if Precedence::of(&op) >= base => Some(op),
1202 let precedence = Precedence::of(&op);
1206 if next > precedence || next == precedence && precedence == Precedence::Assign {
1218 } else if Precedence::Assign >= base
1227 if next >= Precedence::Assign {
1239 } else if Precedence::Range >= base && input.peek(Token![..]) {
1253 if next > Precedence::Range {
1267 } else if Precedence::Cast >= base && input.peek(Token![as]) {
1287 fn parse_expr(input: ParseStream, mut lhs: Expr, base: Precedence) -> Result<Expr> {
1291 Ok(op) if Precedence::of(&op) >= base => Some(op),
1295 let precedence = Precedence::of(&op);
1299 if next > precedence || next == precedence && precedence == Precedence::Assign {
1311 } else if Precedence::Cast >= base && input.peek(Token![as]) {
1330 fn peek_precedence(input: ParseStream) -> Precedence {
1332 Precedence::of(&op)
1334 Precedence::Assign
1336 Precedence::Range
1338 Precedence::Cast
1340 Precedence::Any
1359 Precedence::Any,
2003 return parse_expr(input, expr, allow_struct, Precedence::Any);
2013 return parse_expr(input, expr, allow_struct, Precedence::Any);
2113 parse_expr(input, lhs, allow_struct, Precedence::Compare)?