ClassExpression::ClassExpression( EXPRESSION_CONSTRUCTOR_PARAMETERS, ClassStatementPtr cls, ExpressionListPtr params) : FunctionCall(EXPRESSION_CONSTRUCTOR_PARAMETER_VALUES(ClassExpression), nullptr, "", false, params, nullptr) , m_cls(cls) { }
UserAttribute::UserAttribute (EXPRESSION_CONSTRUCTOR_PARAMETERS, const std::string& name, ExpressionPtr exp) : Expression(EXPRESSION_CONSTRUCTOR_PARAMETER_VALUES(UserAttribute)), m_name(name), m_exp(exp) { if (m_exp) { assert(m_exp->isScalar()); } }
ClosureExpression::ClosureExpression( EXPRESSION_CONSTRUCTOR_PARAMETERS, ClosureType type, FunctionStatementPtr func, ExpressionListPtr vars) : Expression(EXPRESSION_CONSTRUCTOR_PARAMETER_VALUES(ClosureExpression)) , m_type(type) , m_func(func) , m_captureState(m_type == ClosureType::Short ? CaptureState::Unknown : CaptureState::Known) { switch (m_type) { case ClosureType::Short: break; case ClosureType::Long: if (vars) initializeFromUseList(vars); break; } }
UnaryOpExpression::UnaryOpExpression (EXPRESSION_CONSTRUCTOR_PARAMETERS, ExpressionPtr exp, int op, bool front) : Expression(EXPRESSION_CONSTRUCTOR_PARAMETER_VALUES(UnaryOpExpression)), m_exp(exp), m_op(op), m_front(front) { ctorInit(); }