+redef class ACallAssignExpr
+ private init make(recv: AExpr, callsite: CallSite, args: nullable Collection[AExpr], n_value: AExpr)
+ do
+ _callsite = callsite
+ _mtype = callsite.recv
+ _is_typed = true
+ var n_args = new AListExprs
+ if args != null then
+ n_args.n_exprs.add_all(args)
+ end
+ var n_qid = new AQid
+ n_qid.n_id = new TId
+ n_qid.n_id.text = callsite.mproperty.name
+ init_acallassignexpr(recv, n_qid, n_args, new TAssign, n_value)
+ end
+end
+
+redef class AStdClassdef
+ private init make(mclassdef: nullable MClassDef,
+ n_visibility: nullable AVisibility,
+ n_formaldefs : Collection[Object],
+ n_extern_code_block : nullable AExternCodeBlock,
+ n_propdefs : Collection[Object],
+ n_classkind: nullable AClasskind)
+ do
+ if n_visibility == null then n_visibility = new APublicVisibility
+ if n_classkind == null then n_classkind = new AConcreteClasskind.init_aconcreteclasskind(new TKwclass)
+ var n_qid = new AQclassid.init_aqclassid(null, new TClassid)
+ init_astdclassdef(null, null, n_visibility, n_classkind, n_qid, null, n_formaldefs, null, n_extern_code_block, n_propdefs, new TKwend)
+ _mclassdef = mclassdef
+ _mclass = mclassdef.mclass
+ end
+end
+
+redef class AAttrPropdef
+
+ # Create a new `AAttrPropdef`
+ # Note: By default if the `AVisibility` is not given the visibility is set to public
+ private init make(name: String,
+ n_type: nullable AType,
+ n_visibility: nullable AVisibility,
+ initial_value: nullable AExpr,
+ n_block: nullable AExpr,
+ m_attributedef: nullable MAttributeDef,
+ m_setterdef: nullable MMethodDef,
+ m_getterdef: nullable MMethodDef)
+ do
+ # Set the model type
+ if n_type != null then mtype = n_type.mtype
+ # Define the visibility default is public
+ if n_visibility == null then n_visibility = new APublicVisibility
+ init_aattrpropdef(null, null, n_visibility, new TKwvar, new TId, n_type, null, initial_value, null, null , n_block, null)
+ # Set the name of the attribute
+ _n_id2.text = name
+ _mpropdef = m_attributedef
+ _mreadpropdef = m_getterdef
+ _mwritepropdef = m_setterdef
+ if initial_value != null or n_block != null then has_value = true
+ if m_attributedef != null then self.location = m_attributedef.location
+ end
+end
+