luaur_ast/methods/
parser_parse_compound_op.rs1use 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}