use crate::v1_1::bmm3::expression::el_attached::ElAttached;
use crate::v1_1::bmm3::expression::el_binary_operator::ElBinaryOperator;
use crate::v1_1::bmm3::expression::el_boolean_expression::ElBooleanExpression;
use crate::v1_1::bmm3::expression::el_case_table::ElCaseTable;
use crate::v1_1::bmm3::expression::el_condition_chain::ElConditionChain;
use crate::v1_1::bmm3::expression::el_defined::ElDefined;
use crate::v1_1::bmm3::expression::el_function_agent::ElFunctionAgent;
use crate::v1_1::bmm3::expression::el_function_call::ElFunctionCall;
use crate::v1_1::bmm3::expression::el_literal::ElLiteral;
use crate::v1_1::bmm3::expression::el_procedure_agent::ElProcedureAgent;
use crate::v1_1::bmm3::expression::el_property_ref::ElPropertyRef;
use crate::v1_1::bmm3::expression::el_readonly_variable::ElReadonlyVariable;
use crate::v1_1::bmm3::expression::el_static_ref::ElStaticRef;
use crate::v1_1::bmm3::expression::el_terminal::ElTerminal;
use crate::v1_1::bmm3::expression::el_tuple::ElTuple;
use crate::v1_1::bmm3::expression::el_type_ref::ElTypeRef;
use crate::v1_1::bmm3::expression::el_unary_operator::ElUnaryOperator;
use crate::v1_1::bmm3::expression::el_writable_variable::ElWritableVariable;
#[doc(alias = "EL_EXPRESSION")]
#[derive(Debug, Clone, PartialEq)]
pub enum ElExpression {
ElAttached(ElAttached),
ElBinaryOperator(Box<ElBinaryOperator>),
ElBooleanExpression(Box<ElBooleanExpression>),
ElCaseTable(ElCaseTable<ElTerminal>),
ElConditionChain(ElConditionChain<ElTerminal>),
ElDefined(ElDefined),
ElFunctionAgent(ElFunctionAgent),
ElFunctionCall(ElFunctionCall),
ElLiteral(ElLiteral),
ElProcedureAgent(ElProcedureAgent),
ElPropertyRef(ElPropertyRef),
ElReadonlyVariable(ElReadonlyVariable),
ElStaticRef(ElStaticRef),
ElTuple(ElTuple),
ElTypeRef(ElTypeRef),
ElUnaryOperator(Box<ElUnaryOperator>),
ElWritableVariable(ElWritableVariable),
}