Property definitions

nitc $ DerivingPhase :: generate_derive_to_map_method
	fun generate_derive_to_map_method(nclassdef: AClassdef, nat: AAnnotation)
	do
		var npropdefs = nclassdef.n_propdefs

		var sc = toolcontext.parse_superclass("Derivable")
		sc.location = nat.location
		nclassdef.n_propdefs.add sc

		var code = new Array[String]
		code.add "redef fun derive_to_map"
		code.add "do"
		code.add "	var res = super"

		for attribute in npropdefs do if attribute isa AAttrPropdef then
			var name = attribute.n_id2.text
			code.add """	res["{{{name}}}"] = self.{{{name}}}"""
		end

		code.add "	return res"
		code.add "end"

		# Create method Node and add it to the AST
		npropdefs.push(toolcontext.parse_propdef(code.join("\n")))
	end
src/frontend/deriving.nit:78,2--101,4