Skip to main content

luaur_ast/methods/
parser_parse_compound_op.rs

1use crate::records::ast_expr_binary::AstExprBinary_Op;
2use crate::records::lexeme::Lexeme;
3use crate::records::parser::Parser;
4
5impl Parser {
6    #[allow(non_snake_case)]
7    pub(crate) fn parse_compound_op(&self, l: &Lexeme) -> Option<AstExprBinary_Op> {
8        if l.r#type == crate::records::lexeme::Type::AddAssign {
9            Some(AstExprBinary_Op::Add)
10        } else if l.r#type == crate::records::lexeme::Type::SubAssign {
11            Some(AstExprBinary_Op::Sub)
12        } else if l.r#type == crate::records::lexeme::Type::MulAssign {
13            Some(AstExprBinary_Op::Mul)
14        } else if l.r#type == crate::records::lexeme::Type::DivAssign {
15            Some(AstExprBinary_Op::Div)
16        } else if l.r#type == crate::records::lexeme::Type::FloorDivAssign {
17            Some(AstExprBinary_Op::FloorDiv)
18        } else if l.r#type == crate::records::lexeme::Type::ModAssign {
19            Some(AstExprBinary_Op::Mod)
20        } else if l.r#type == crate::records::lexeme::Type::PowAssign {
21            Some(AstExprBinary_Op::Pow)
22        } else if l.r#type == crate::records::lexeme::Type::ConcatAssign {
23            Some(AstExprBinary_Op::Concat)
24        } else {
25            None
26        }
27    }
28}