use crate::util::Utf16String;
use super::{ComplexExpression, IStandardExpression};
pub trait MultiplicationDivisionRemainderExpression: ComplexExpression {
fn multiplication_operator() -> Utf16String {
Utf16String::from_rust_str("*")
}
fn division_operator() -> Utf16String {
Utf16String::from_rust_str("/")
}
fn division_operator_2() -> Utf16String {
Utf16String::from_rust_str("div")
}
fn remainder_operator() -> Utf16String {
Utf16String::from_rust_str("%")
}
fn remainder_operator_2() -> Utf16String {
Utf16String::from_rust_str("mod")
}
fn is_left_allowed(left: Option<&dyn IStandardExpression>) -> bool {
operand_allowed(left)
}
fn is_right_allowed(right: Option<&dyn IStandardExpression>) -> bool {
operand_allowed(right)
}
}
fn operand_allowed(expression: Option<&dyn IStandardExpression>) -> bool {
expression.is_some_and(|expression| {
(!expression.is_token_expression() || expression.is_number_token_expression())
&& !expression.is_text_literal_expression()
})
}