Replace a child with an other node in the AST

Property definitions

nitc $ ANode :: replace_child
	# Replace a child with an other node in the AST
	private fun replace_child(old_child: ANode, new_child: nullable ANode) is abstract
src/parser/parser_nodes.nit:115,2--116,83

nitc $ Token :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode) do end
src/parser/parser_nodes.nit:411,2--76

nitc :: parser_prod $ AModule :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_moduledecl == old_child then
			n_moduledecl = new_child.as(nullable AModuledecl)
			return
		end
		if n_imports.replace_child(old_child, new_child) then return
		if n_extern_code_blocks.replace_child(old_child, new_child) then return
		if n_classdefs.replace_child(old_child, new_child) then return
	end
src/parser/parser_prod.nit:24,2--33,4

nitc :: parser_prod $ AFormaldef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TClassid)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(nullable AType)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:779,2--793,4

nitc :: parser_prod $ AQid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_qualified == old_child then
			n_qualified = new_child.as(nullable AQualified)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
	end
src/parser/parser_prod.nit:2287,2--2297,4

nitc :: parser_prod $ AQclassid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_qualified == old_child then
			n_qualified = new_child.as(nullable AQualified)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(TClassid)
			return
		end
	end
src/parser/parser_prod.nit:2329,2--2339,4

nitc :: parser_prod $ ASignature :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_opar == old_child then
			n_opar = new_child.as(nullable TOpar)
			return
		end
		if n_params.replace_child(old_child, new_child) then return
		if _n_cpar == old_child then
			n_cpar = new_child.as(nullable TCpar)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(nullable AType)
			return
		end
	end
src/parser/parser_prod.nit:2376,2--2391,4

nitc :: parser_prod $ AParam :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(nullable AType)
			return
		end
		if _n_dotdotdot == old_child then
			n_dotdotdot = new_child.as(nullable TDotdotdot)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:2436,2--2454,4

nitc :: parser_prod $ AType :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwnullable == old_child then
			n_kwnullable = new_child.as(nullable TKwnullable)
			return
		end
		if _n_qid == old_child then
			n_qid = new_child.as(AQclassid)
			return
		end
		if _n_obra == old_child then
			n_obra = new_child.as(nullable TObra)
			return
		end
		if n_types.replace_child(old_child, new_child) then return
		if _n_cbra == old_child then
			n_cbra = new_child.as(nullable TCbra)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:2509,2--2532,4

nitc :: parser_prod $ ALabel :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwlabel == old_child then
			n_kwlabel = new_child.as(TKwlabel)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(nullable TId)
			return
		end
	end
src/parser/parser_prod.nit:2583,2--2593,4

nitc :: parser_prod $ AForGroup :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_ids.replace_child(old_child, new_child) then return
		if _n_kwin == old_child then
			n_kwin = new_child.as(TKwin)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:8017,2--8028,4

nitc :: parser_prod $ AModuleName :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_quad == old_child then
			n_quad = new_child.as(nullable TQuad)
			return
		end
		if n_path.replace_child(old_child, new_child) then return
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
	end
src/parser/parser_prod.nit:8063,2--8074,4

nitc :: parser_prod $ AExternCalls :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwimport == old_child then
			n_kwimport = new_child.as(TKwimport)
			return
		end
		if n_extern_calls.replace_child(old_child, new_child) then return
	end
src/parser/parser_prod.nit:8106,2--8113,4

nitc :: parser_prod $ AExternCall :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
	end
src/parser/parser_prod.nit:8133,2--8135,4

nitc :: parser_prod $ AInLanguage :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwin == old_child then
			n_kwin = new_child.as(TKwin)
			return
		end
		if _n_string == old_child then
			n_string = new_child.as(TString)
			return
		end
	end
src/parser/parser_prod.nit:8488,2--8498,4

nitc :: parser_prod $ AExternCodeBlock :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_in_language == old_child then
			n_in_language = new_child.as(nullable AInLanguage)
			return
		end
		if _n_extern_code_segment == old_child then
			n_extern_code_segment = new_child.as(TExternCodeSegment)
			return
		end
	end
src/parser/parser_prod.nit:8530,2--8540,4

nitc :: parser_prod $ AQualified :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_id.replace_child(old_child, new_child) then return
		if _n_classid == old_child then
			n_classid = new_child.as(nullable TClassid)
			return
		end
	end
src/parser/parser_prod.nit:8571,2--8578,4

nitc :: parser_prod $ ADoc :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_comment.replace_child(old_child, new_child) then return
	end
src/parser/parser_prod.nit:8601,2--8604,4

nitc :: parser_prod $ AAnnotations :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwis == old_child then
			n_kwis = new_child.as(nullable TKwis)
			return
		end
		if _n_at == old_child then
			n_at = new_child.as(nullable TAt)
			return
		end
		if _n_opar == old_child then
			n_opar = new_child.as(nullable TOpar)
			return
		end
		if n_items.replace_child(old_child, new_child) then return
		if _n_cpar == old_child then
			n_cpar = new_child.as(nullable TCpar)
			return
		end
		if _n_kwend == old_child then
			n_kwend = new_child.as(nullable TKwend)
			return
		end
	end
src/parser/parser_prod.nit:8636,2--8659,4

nitc :: parser_prod $ Start :: replace_child
    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
    do
        if _n_base == old_child then
            if new_child == null then
            else
                new_child.parent = self
		assert new_child isa AModule
                _n_base = new_child
            end
            old_child.parent = null
            return
	end
    end
src/parser/parser_prod.nit:8927,5--8939,7

nitc :: parser_prod $ ABlockExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_expr.replace_child(old_child, new_child) then return
		if _n_kwend == old_child then
			n_kwend = new_child.as(nullable TKwend)
			return
		end
	end
src/parser/parser_prod.nit:2624,2--2631,4

nitc :: parser_prod $ AVardeclExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwvar == old_child then
			n_kwvar = new_child.as(nullable TKwvar)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(nullable AType)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(nullable TAssign)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(nullable AExpr)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:2670,2--2696,4

nitc :: parser_prod $ ASelfExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwself == old_child then
			n_kwself = new_child.as(TKwself)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6420,2--6430,4

nitc :: parser_prod $ AAbortExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwabort == old_child then
			n_kwabort = new_child.as(TKwabort)
			return
		end
	end
src/parser/parser_prod.nit:2875,2--2881,4

nitc :: parser_prod $ AIfExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwif == old_child then
			n_kwif = new_child.as(TKwif)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwthen == old_child then
			n_kwthen = new_child.as(TKwthen)
			return
		end
		if _n_then == old_child then
			n_then = new_child.as(nullable AExpr)
			return
		end
		if _n_kwelse == old_child then
			n_kwelse = new_child.as(nullable TKwelse)
			return
		end
		if _n_else == old_child then
			n_else = new_child.as(nullable AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3042,2--3068,4

nitc :: parser_prod $ AIfexprExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwif == old_child then
			n_kwif = new_child.as(TKwif)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwthen == old_child then
			n_kwthen = new_child.as(TKwthen)
			return
		end
		if _n_then == old_child then
			n_then = new_child.as(AExpr)
			return
		end
		if _n_kwelse == old_child then
			n_kwelse = new_child.as(TKwelse)
			return
		end
		if _n_else == old_child then
			n_else = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3136,2--3162,4

nitc :: parser_prod $ AAssertExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwassert == old_child then
			n_kwassert = new_child.as(TKwassert)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(nullable TId)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwelse == old_child then
			n_kwelse = new_child.as(nullable TKwelse)
			return
		end
		if _n_else == old_child then
			n_else = new_child.as(nullable AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3516,2--3538,4

nitc :: parser_prod $ AIntegerExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_integer == old_child then
			n_integer = new_child.as(TInteger)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6603,2--6613,4

nitc :: parser_prod $ AFloatExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_float == old_child then
			n_float = new_child.as(TFloat)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6645,2--6655,4

nitc :: parser_prod $ AArrayExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_obra == old_child then
			n_obra = new_child.as(TObra)
			return
		end
		if n_exprs.replace_child(old_child, new_child) then return
		if _n_type == old_child then
			n_type = new_child.as(nullable AType)
			return
		end
		if _n_cbra == old_child then
			n_cbra = new_child.as(TCbra)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6356,2--6375,4

nitc :: parser_prod $ ANullExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwnull == old_child then
			n_kwnull = new_child.as(TKwnull)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6561,2--6571,4

nitc :: parser_prod $ AParExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_opar == old_child then
			n_opar = new_child.as(TOpar)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_cpar == old_child then
			n_cpar = new_child.as(TCpar)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6965,2--6983,4

nitc :: parser_prod $ AOnceExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwonce == old_child then
			n_kwonce = new_child.as(TKwonce)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3588,2--3598,4

nitc :: parser_prod $ ASendExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3627,2--3633,4

nitc :: parser_prod $ ASuperExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_qualified == old_child then
			n_qualified = new_child.as(nullable AQualified)
			return
		end
		if _n_kwsuper == old_child then
			n_kwsuper = new_child.as(TKwsuper)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
	end
src/parser/parser_prod.nit:5681,2--5695,4

nitc :: parser_prod $ ANewExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwnew == old_child then
			n_kwnew = new_child.as(TKwnew)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
		if _n_qid == old_child then
			n_qid = new_child.as(nullable AQid)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
	end
src/parser/parser_prod.nit:5153,2--5171,4

nitc :: parser_prod $ AVarargExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_dotdotdot == old_child then
			n_dotdotdot = new_child.as(TDotdotdot)
			return
		end
	end
src/parser/parser_prod.nit:7325,2--7335,4

nitc :: parser_prod $ ASafeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_quest == old_child then
			n_quest = new_child.as(TQuest)
			return
		end
	end
src/parser/parser_prod.nit:7422,2--7432,4

nitc :: parser_prod $ ANamedargExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(TAssign)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:7370,2--7384,4

nitc :: parser_prod $ ADebugTypeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwdebug == old_child then
			n_kwdebug = new_child.as(TKwdebug)
			return
		end
		if _n_kwtype == old_child then
			n_kwtype = new_child.as(TKwtype)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
	end
src/parser/parser_prod.nit:7263,2--7281,4

nitc :: parser_prod $ AModuledecl :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_doc == old_child then
			n_doc = new_child.as(nullable ADoc)
			return
		end
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_visibility == old_child then
			n_visibility = new_child.as(AVisibility)
			return
		end
		if _n_kwmodule == old_child then
			n_kwmodule = new_child.as(TKwmodule)
			return
		end
		if _n_name == old_child then
			n_name = new_child.as(AModuleName)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:74,2--100,4

nitc :: parser_prod $ AStdImport :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_visibility == old_child then
			n_visibility = new_child.as(AVisibility)
			return
		end
		if _n_kwimport == old_child then
			n_kwimport = new_child.as(TKwimport)
			return
		end
		if _n_name == old_child then
			n_name = new_child.as(AModuleName)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:162,2--180,4

nitc :: parser_prod $ ANoImport :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_visibility == old_child then
			n_visibility = new_child.as(AVisibility)
			return
		end
		if _n_kwimport == old_child then
			n_kwimport = new_child.as(TKwimport)
			return
		end
		if _n_kwend == old_child then
			n_kwend = new_child.as(TKwend)
			return
		end
	end
src/parser/parser_prod.nit:227,2--241,4

nitc :: parser_prod $ APublicVisibility :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwpublic == old_child then
			n_kwpublic = new_child.as(nullable TKwpublic)
			return
		end
	end
src/parser/parser_prod.nit:276,2--282,4

nitc :: parser_prod $ APrivateVisibility :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwprivate == old_child then
			n_kwprivate = new_child.as(TKwprivate)
			return
		end
	end
src/parser/parser_prod.nit:305,2--311,4

nitc :: parser_prod $ AProtectedVisibility :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwprotected == old_child then
			n_kwprotected = new_child.as(TKwprotected)
			return
		end
	end
src/parser/parser_prod.nit:334,2--340,4

nitc :: parser_prod $ AIntrudeVisibility :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwintrude == old_child then
			n_kwintrude = new_child.as(TKwintrude)
			return
		end
	end
src/parser/parser_prod.nit:363,2--369,4

nitc :: parser_prod $ ATopClassdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_propdefs.replace_child(old_child, new_child) then return
	end
src/parser/parser_prod.nit:532,2--535,4

nitc :: parser_prod $ AMainClassdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_propdefs.replace_child(old_child, new_child) then return
	end
src/parser/parser_prod.nit:552,2--555,4

nitc :: parser_prod $ AConcreteClasskind :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwclass == old_child then
			n_kwclass = new_child.as(TKwclass)
			return
		end
	end
src/parser/parser_prod.nit:573,2--579,4

nitc :: parser_prod $ AAbstractClasskind :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwabstract == old_child then
			n_kwabstract = new_child.as(TKwabstract)
			return
		end
		if _n_kwclass == old_child then
			n_kwclass = new_child.as(TKwclass)
			return
		end
	end
src/parser/parser_prod.nit:605,2--615,4

nitc :: parser_prod $ AInterfaceClasskind :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwinterface == old_child then
			n_kwinterface = new_child.as(TKwinterface)
			return
		end
	end
src/parser/parser_prod.nit:644,2--650,4

nitc :: parser_prod $ AEnumClasskind :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwenum == old_child then
			n_kwenum = new_child.as(TKwenum)
			return
		end
	end
src/parser/parser_prod.nit:673,2--679,4

nitc :: parser_prod $ AExternClasskind :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwextern == old_child then
			n_kwextern = new_child.as(TKwextern)
			return
		end
		if _n_kwclass == old_child then
			n_kwclass = new_child.as(nullable TKwclass)
			return
		end
	end
src/parser/parser_prod.nit:705,2--715,4

nitc :: parser_prod $ ASubsetClasskind :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwsubset == old_child then
			n_kwsubset = new_child.as(TKwsubset)
			return
		end
	end
src/parser/parser_prod.nit:744,2--750,4

nitc :: parser_prod $ AIdMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
	end
src/parser/parser_prod.nit:1565,2--1571,4

nitc :: parser_prod $ ABraMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_obra == old_child then
			n_obra = new_child.as(TObra)
			return
		end
		if _n_cbra == old_child then
			n_cbra = new_child.as(TCbra)
			return
		end
	end
src/parser/parser_prod.nit:2148,2--2158,4

nitc :: parser_prod $ AAssignMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(TAssign)
			return
		end
	end
src/parser/parser_prod.nit:2190,2--2200,4

nitc :: parser_prod $ ABraassignMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_obra == old_child then
			n_obra = new_child.as(TObra)
			return
		end
		if _n_cbra == old_child then
			n_cbra = new_child.as(TCbra)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(TAssign)
			return
		end
	end
src/parser/parser_prod.nit:2235,2--2249,4

nitc :: parser_prod $ AYieldExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwyield == old_child then
			n_kwyield = new_child.as(TKwyield)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:2794,2--2804,4

nitc :: parser_prod $ ARangeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6108,2--6122,4

nitc :: parser_prod $ ALambdaExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwmeth == old_child then
			n_kwmeth = new_child.as(TKwmeth)
			return
		end
		if _n_signature == old_child then
			n_signature = new_child.as(ASignature)
			return
		end
		if _n_kwdo == old_child then
			n_kwdo = new_child.as(TKwdo)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:6897,2--6915,4

nitc :: parser_prod $ ATypeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
	end
src/parser/parser_prod.nit:7461,2--7467,4

nitc :: parser_prod $ AMethidExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(AMethid)
			return
		end
	end
src/parser/parser_prod.nit:7493,2--7503,4

nitc :: parser_prod $ AAtExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_annotations == old_child then
			n_annotations = new_child.as(AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:7532,2--7538,4

nitc :: parser_prod $ AManyExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_exprs.replace_child(old_child, new_child) then return
	end
src/parser/parser_prod.nit:7560,2--7563,4

nitc :: parser_prod $ AListExprs :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_exprs.replace_child(old_child, new_child) then return
	end
src/parser/parser_prod.nit:7580,2--7583,4

nitc :: parser_prod $ AParExprs :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_opar == old_child then
			n_opar = new_child.as(TOpar)
			return
		end
		if n_exprs.replace_child(old_child, new_child) then return
		if _n_cpar == old_child then
			n_cpar = new_child.as(TCpar)
			return
		end
	end
src/parser/parser_prod.nit:7606,2--7617,4

nitc :: parser_prod $ ABraExprs :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_obra == old_child then
			n_obra = new_child.as(TObra)
			return
		end
		if n_exprs.replace_child(old_child, new_child) then return
		if _n_cbra == old_child then
			n_cbra = new_child.as(TCbra)
			return
		end
	end
src/parser/parser_prod.nit:7652,2--7663,4

nitc :: parser_prod $ APlusAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TPluseq)
			return
		end
	end
src/parser/parser_prod.nit:7693,2--7699,4

nitc :: parser_prod $ AMinusAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TMinuseq)
			return
		end
	end
src/parser/parser_prod.nit:7722,2--7728,4

nitc :: parser_prod $ AStarAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TStareq)
			return
		end
	end
src/parser/parser_prod.nit:7751,2--7757,4

nitc :: parser_prod $ ASlashAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TSlasheq)
			return
		end
	end
src/parser/parser_prod.nit:7780,2--7786,4

nitc :: parser_prod $ APercentAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TPercenteq)
			return
		end
	end
src/parser/parser_prod.nit:7809,2--7815,4

nitc :: parser_prod $ AStarstarAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TStarstareq)
			return
		end
	end
src/parser/parser_prod.nit:7838,2--7844,4

nitc :: parser_prod $ APipeAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TPipeeq)
			return
		end
	end
src/parser/parser_prod.nit:7867,2--7873,4

nitc :: parser_prod $ ACaretAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TCareteq)
			return
		end
	end
src/parser/parser_prod.nit:7896,2--7902,4

nitc :: parser_prod $ AAmpAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TAmpeq)
			return
		end
	end
src/parser/parser_prod.nit:7925,2--7931,4

nitc :: parser_prod $ ALlAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TLleq)
			return
		end
	end
src/parser/parser_prod.nit:7954,2--7960,4

nitc :: parser_prod $ AGgAssignOp :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TGgeq)
			return
		end
	end
src/parser/parser_prod.nit:7983,2--7989,4

nitc :: parser_prod $ ASuperExternCall :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwsuper == old_child then
			n_kwsuper = new_child.as(TKwsuper)
			return
		end
	end
src/parser/parser_prod.nit:8152,2--8158,4

nitc :: parser_prod $ AAnnotation :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_doc == old_child then
			n_doc = new_child.as(nullable ADoc)
			return
		end
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_visibility == old_child then
			n_visibility = new_child.as(nullable AVisibility)
			return
		end
		if _n_atid == old_child then
			n_atid = new_child.as(AAtid)
			return
		end
		if _n_opar == old_child then
			n_opar = new_child.as(nullable TOpar)
			return
		end
		if n_args.replace_child(old_child, new_child) then return
		if _n_cpar == old_child then
			n_cpar = new_child.as(nullable TCpar)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:8727,2--8758,4

nitc :: parser_prod $ AIdAtid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
	end
src/parser/parser_prod.nit:8818,2--8824,4

nitc :: parser_prod $ AKwexternAtid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TKwextern)
			return
		end
	end
src/parser/parser_prod.nit:8847,2--8853,4

nitc :: parser_prod $ AKwabstractAtid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TKwabstract)
			return
		end
	end
src/parser/parser_prod.nit:8876,2--8882,4

nitc :: parser_prod $ AKwimportAtid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TKwimport)
			return
		end
	end
src/parser/parser_prod.nit:8905,2--8911,4

nitc :: parser_prod $ AAttrPropdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_doc == old_child then
			n_doc = new_child.as(nullable ADoc)
			return
		end
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_visibility == old_child then
			n_visibility = new_child.as(AVisibility)
			return
		end
		if _n_kwvar == old_child then
			n_kwvar = new_child.as(TKwvar)
			return
		end
		if _n_id2 == old_child then
			n_id2 = new_child.as(TId)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(nullable AType)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(nullable TAssign)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(nullable AExpr)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
		if _n_kwdo == old_child then
			n_kwdo = new_child.as(nullable TKwdo)
			return
		end
		if _n_block == old_child then
			n_block = new_child.as(nullable AExpr)
			return
		end
		if _n_kwend == old_child then
			n_kwend = new_child.as(nullable TKwend)
			return
		end
	end
src/parser/parser_prod.nit:861,2--911,4

nitc :: parser_prod $ AVarExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
	end
src/parser/parser_prod.nit:5963,2--5969,4

nitc :: parser_prod $ AImplicitSelfExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
	end
src/parser/parser_prod.nit:6455,2--6457,4

nitc :: parser_prod $ AWithExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwwith == old_child then
			n_kwwith = new_child.as(TKwwith)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwdo == old_child then
			n_kwdo = new_child.as(TKwdo)
			return
		end
		if _n_block == old_child then
			n_block = new_child.as(nullable AExpr)
			return
		end
		if _n_label == old_child then
			n_label = new_child.as(nullable ALabel)
			return
		end
	end
src/parser/parser_prod.nit:3435,2--3457,4

nitc :: parser_prod $ ANotExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwnot == old_child then
			n_kwnot = new_child.as(TKwnot)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3934,2--3944,4

nitc :: parser_prod $ ACharExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_char == old_child then
			n_char = new_child.as(TChar)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6687,2--6697,4

nitc :: parser_prod $ ACrangeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_obra == old_child then
			n_obra = new_child.as(TObra)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_dotdot == old_child then
			n_dotdot = new_child.as(TDotdot)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
		if _n_cbra == old_child then
			n_cbra = new_child.as(TCbra)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6172,2--6198,4

nitc :: parser_prod $ AOrangeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_obra == old_child then
			n_obra = new_child.as(TObra)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_dotdot == old_child then
			n_dotdot = new_child.as(TDotdot)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
		if _n_cbra == old_child then
			n_cbra = new_child.as(TObra)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6266,2--6292,4

nitc :: parser_prod $ ATrueExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwtrue == old_child then
			n_kwtrue = new_child.as(TKwtrue)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6477,2--6487,4

nitc :: parser_prod $ AFalseExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwfalse == old_child then
			n_kwfalse = new_child.as(TKwfalse)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6519,2--6529,4

nitc :: parser_prod $ AIsaExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwisa == old_child then
			n_kwisa = new_child.as(TKwisa)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
	end
src/parser/parser_prod.nit:4419,2--4433,4

nitc :: parser_prod $ AAsCastExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwas == old_child then
			n_kwas = new_child.as(TKwas)
			return
		end
		if _n_opar == old_child then
			n_opar = new_child.as(nullable TOpar)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
		if _n_cpar == old_child then
			n_cpar = new_child.as(nullable TCpar)
			return
		end
	end
src/parser/parser_prod.nit:7036,2--7058,4

nitc :: parser_prod $ AAsNotnullExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwas == old_child then
			n_kwas = new_child.as(TKwas)
			return
		end
		if _n_opar == old_child then
			n_opar = new_child.as(nullable TOpar)
			return
		end
		if _n_kwnot == old_child then
			n_kwnot = new_child.as(TKwnot)
			return
		end
		if _n_kwnull == old_child then
			n_kwnull = new_child.as(TKwnull)
			return
		end
		if _n_cpar == old_child then
			n_cpar = new_child.as(nullable TCpar)
			return
		end
	end
src/parser/parser_prod.nit:7120,2--7146,4

nitc :: parser_prod $ AAttrExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(TAttrid)
			return
		end
	end
src/parser/parser_prod.nit:5215,2--5225,4

nitc :: parser_prod $ AIssetAttrExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwisset == old_child then
			n_kwisset = new_child.as(TKwisset)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(TAttrid)
			return
		end
	end
src/parser/parser_prod.nit:7205,2--7219,4

nitc :: parser_prod $ AStdClassdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_doc == old_child then
			n_doc = new_child.as(nullable ADoc)
			return
		end
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_visibility == old_child then
			n_visibility = new_child.as(AVisibility)
			return
		end
		if _n_classkind == old_child then
			n_classkind = new_child.as(AClasskind)
			return
		end
		if _n_qid == old_child then
			n_qid = new_child.as(nullable AQclassid)
			return
		end
		if _n_obra == old_child then
			n_obra = new_child.as(nullable TObra)
			return
		end
		if n_formaldefs.replace_child(old_child, new_child) then return
		if _n_cbra == old_child then
			n_cbra = new_child.as(nullable TCbra)
			return
		end
		if _n_extern_code_block == old_child then
			n_extern_code_block = new_child.as(nullable AExternCodeBlock)
			return
		end
		if n_propdefs.replace_child(old_child, new_child) then return
		if _n_kwend == old_child then
			n_kwend = new_child.as(TKwend)
			return
		end
	end
src/parser/parser_prod.nit:420,2--460,4

nitc :: parser_prod $ ATypePropdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_doc == old_child then
			n_doc = new_child.as(nullable ADoc)
			return
		end
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_visibility == old_child then
			n_visibility = new_child.as(AVisibility)
			return
		end
		if _n_kwtype == old_child then
			n_kwtype = new_child.as(TKwtype)
			return
		end
		if _n_qid == old_child then
			n_qid = new_child.as(AQclassid)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:1060,2--1090,4

nitc :: parser_prod $ ASuperPropdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_doc == old_child then
			n_doc = new_child.as(nullable ADoc)
			return
		end
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_visibility == old_child then
			n_visibility = new_child.as(AVisibility)
			return
		end
		if _n_kwsuper == old_child then
			n_kwsuper = new_child.as(TKwsuper)
			return
		end
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:1375,2--1401,4

nitc :: parser_prod $ APlusMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TPlus)
			return
		end
	end
src/parser/parser_prod.nit:1594,2--1600,4

nitc :: parser_prod $ AMinusMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TMinus)
			return
		end
	end
src/parser/parser_prod.nit:1623,2--1629,4

nitc :: parser_prod $ AStarMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TStar)
			return
		end
	end
src/parser/parser_prod.nit:1652,2--1658,4

nitc :: parser_prod $ AStarstarMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TStarstar)
			return
		end
	end
src/parser/parser_prod.nit:1681,2--1687,4

nitc :: parser_prod $ ASlashMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TSlash)
			return
		end
	end
src/parser/parser_prod.nit:1710,2--1716,4

nitc :: parser_prod $ APercentMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TPercent)
			return
		end
	end
src/parser/parser_prod.nit:1739,2--1745,4

nitc :: parser_prod $ AEqMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TEq)
			return
		end
	end
src/parser/parser_prod.nit:1768,2--1774,4

nitc :: parser_prod $ ANeMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TNe)
			return
		end
	end
src/parser/parser_prod.nit:1797,2--1803,4

nitc :: parser_prod $ ALeMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TLe)
			return
		end
	end
src/parser/parser_prod.nit:1826,2--1832,4

nitc :: parser_prod $ AGeMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TGe)
			return
		end
	end
src/parser/parser_prod.nit:1855,2--1861,4

nitc :: parser_prod $ ALtMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TLt)
			return
		end
	end
src/parser/parser_prod.nit:1884,2--1890,4

nitc :: parser_prod $ AGtMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TGt)
			return
		end
	end
src/parser/parser_prod.nit:1913,2--1919,4

nitc :: parser_prod $ ALlMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TLl)
			return
		end
	end
src/parser/parser_prod.nit:1942,2--1948,4

nitc :: parser_prod $ AGgMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TGg)
			return
		end
	end
src/parser/parser_prod.nit:1971,2--1977,4

nitc :: parser_prod $ AStarshipMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TStarship)
			return
		end
	end
src/parser/parser_prod.nit:2000,2--2006,4

nitc :: parser_prod $ APipeMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TPipe)
			return
		end
	end
src/parser/parser_prod.nit:2029,2--2035,4

nitc :: parser_prod $ ACaretMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TCaret)
			return
		end
	end
src/parser/parser_prod.nit:2058,2--2064,4

nitc :: parser_prod $ AAmpMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TAmp)
			return
		end
	end
src/parser/parser_prod.nit:2087,2--2093,4

nitc :: parser_prod $ ATildeMethid :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TTilde)
			return
		end
	end
src/parser/parser_prod.nit:2116,2--2122,4

nitc :: parser_prod $ AInitExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwinit == old_child then
			n_kwinit = new_child.as(TKwinit)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
	end
src/parser/parser_prod.nit:5736,2--5750,4

nitc :: parser_prod $ ALocalPropExternCall :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_methid == old_child then
			n_methid = new_child.as(AMethid)
			return
		end
	end
src/parser/parser_prod.nit:8181,2--8187,4

nitc :: parser_prod $ AFullPropExternCall :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
		if _n_dot == old_child then
			n_dot = new_child.as(nullable TDot)
			return
		end
		if _n_methid == old_child then
			n_methid = new_child.as(AMethid)
			return
		end
	end
src/parser/parser_prod.nit:8216,2--8230,4

nitc :: parser_prod $ AInitPropExternCall :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
	end
src/parser/parser_prod.nit:8265,2--8271,4

nitc :: parser_prod $ ACastAsExternCall :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_from_type == old_child then
			n_from_type = new_child.as(AType)
			return
		end
		if _n_dot == old_child then
			n_dot = new_child.as(nullable TDot)
			return
		end
		if _n_kwas == old_child then
			n_kwas = new_child.as(TKwas)
			return
		end
		if _n_to_type == old_child then
			n_to_type = new_child.as(AType)
			return
		end
	end
src/parser/parser_prod.nit:8303,2--8321,4

nitc :: parser_prod $ AAsNullableExternCall :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
		if _n_kwas == old_child then
			n_kwas = new_child.as(TKwas)
			return
		end
		if _n_kwnullable == old_child then
			n_kwnullable = new_child.as(TKwnullable)
			return
		end
	end
src/parser/parser_prod.nit:8368,2--8382,4

nitc :: parser_prod $ AAsNotNullableExternCall :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_type == old_child then
			n_type = new_child.as(AType)
			return
		end
		if _n_kwas == old_child then
			n_kwas = new_child.as(TKwas)
			return
		end
		if _n_kwnot == old_child then
			n_kwnot = new_child.as(TKwnot)
			return
		end
		if _n_kwnullable == old_child then
			n_kwnullable = new_child.as(TKwnullable)
			return
		end
	end
src/parser/parser_prod.nit:8426,2--8444,4

nitc :: parser_prod $ AMethPropdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_doc == old_child then
			n_doc = new_child.as(nullable ADoc)
			return
		end
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_visibility == old_child then
			n_visibility = new_child.as(AVisibility)
			return
		end
		if _n_kwmeth == old_child then
			n_kwmeth = new_child.as(nullable TKwmeth)
			return
		end
		if _n_kwinit == old_child then
			n_kwinit = new_child.as(nullable TKwinit)
			return
		end
		if _n_kwisa == old_child then
			n_kwisa = new_child.as(nullable TKwisa)
			return
		end
		if _n_kwnew == old_child then
			n_kwnew = new_child.as(nullable TKwnew)
			return
		end
		if _n_methid == old_child then
			n_methid = new_child.as(nullable AMethid)
			return
		end
		if _n_signature == old_child then
			n_signature = new_child.as(ASignature)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
		if _n_extern_calls == old_child then
			n_extern_calls = new_child.as(nullable AExternCalls)
			return
		end
		if _n_extern_code_block == old_child then
			n_extern_code_block = new_child.as(nullable AExternCodeBlock)
			return
		end
		if _n_kwdo == old_child then
			n_kwdo = new_child.as(nullable TKwdo)
			return
		end
		if _n_block == old_child then
			n_block = new_child.as(nullable AExpr)
			return
		end
		if _n_kwend == old_child then
			n_kwend = new_child.as(nullable TKwend)
			return
		end
	end
src/parser/parser_prod.nit:1191,2--1253,4

nitc :: parser_prod $ AVarAssignExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(TAssign)
			return
		end
		if _n_value == old_child then
			n_value = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5998,2--6012,4

nitc :: parser_prod $ AVarReassignExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_id == old_child then
			n_id = new_child.as(TId)
			return
		end
		if _n_assign_op == old_child then
			n_assign_op = new_child.as(AAssignOp)
			return
		end
		if _n_value == old_child then
			n_value = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:6053,2--6067,4

nitc :: parser_prod $ AOrElseExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TKwor)
			return
		end
		if _n_kwelse == old_child then
			n_kwelse = new_child.as(TKwelse)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3817,2--3835,4

nitc :: parser_prod $ ASuperstringExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if n_exprs.replace_child(old_child, new_child) then return
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6857,2--6864,4

nitc :: parser_prod $ ACallrefExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_amp == old_child then
			n_amp = new_child.as(TAmp)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_qid == old_child then
			n_qid = new_child.as(AQid)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
	end
src/parser/parser_prod.nit:5454,2--5472,4

nitc :: parser_prod $ AAttrAssignExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(TAttrid)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(TAssign)
			return
		end
		if _n_value == old_child then
			n_value = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5263,2--5281,4

nitc :: parser_prod $ AAttrReassignExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_id == old_child then
			n_id = new_child.as(TAttrid)
			return
		end
		if _n_assign_op == old_child then
			n_assign_op = new_child.as(AAssignOp)
			return
		end
		if _n_value == old_child then
			n_value = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5331,2--5349,4

nitc :: parser_prod $ AAnnotPropdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_doc == old_child then
			n_doc = new_child.as(nullable ADoc)
			return
		end
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_visibility == old_child then
			n_visibility = new_child.as(nullable AVisibility)
			return
		end
		if _n_atid == old_child then
			n_atid = new_child.as(AAtid)
			return
		end
		if _n_opar == old_child then
			n_opar = new_child.as(nullable TOpar)
			return
		end
		if n_args.replace_child(old_child, new_child) then return
		if _n_cpar == old_child then
			n_cpar = new_child.as(nullable TCpar)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:1474,2--1505,4

nitc :: parser_prod $ AReturnExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwreturn == old_child then
			n_kwreturn = new_child.as(nullable TKwreturn)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(nullable AExpr)
			return
		end
	end
src/parser/parser_prod.nit:2752,2--2762,4

nitc :: parser_prod $ ABreakExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwbreak == old_child then
			n_kwbreak = new_child.as(TKwbreak)
			return
		end
		if _n_label == old_child then
			n_label = new_child.as(nullable ALabel)
			return
		end
	end
src/parser/parser_prod.nit:2836,2--2846,4

nitc :: parser_prod $ AContinueExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwcontinue == old_child then
			n_kwcontinue = new_child.as(nullable TKwcontinue)
			return
		end
		if _n_label == old_child then
			n_label = new_child.as(nullable ALabel)
			return
		end
	end
src/parser/parser_prod.nit:2907,2--2917,4

nitc :: parser_prod $ ABinopExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3659,2--3669,4

nitc :: parser_prod $ AUminusExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TMinus)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5021,2--5031,4

nitc :: parser_prod $ AUplusExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TPlus)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5063,2--5073,4

nitc :: parser_prod $ AUtildeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_op == old_child then
			n_op = new_child.as(TTilde)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5105,2--5115,4

nitc :: parser_prod $ ACallExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_qid == old_child then
			n_qid = new_child.as(AQid)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
	end
src/parser/parser_prod.nit:5396,2--5410,4

nitc :: parser_prod $ ABraExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
	end
src/parser/parser_prod.nit:5788,2--5798,4

nitc :: parser_prod $ ADoExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwdo == old_child then
			n_kwdo = new_child.as(TKwdo)
			return
		end
		if _n_block == old_child then
			n_block = new_child.as(nullable AExpr)
			return
		end
		if _n_kwcatch == old_child then
			n_kwcatch = new_child.as(nullable TKwcatch)
			return
		end
		if _n_catch == old_child then
			n_catch = new_child.as(nullable AExpr)
			return
		end
		if _n_label == old_child then
			n_label = new_child.as(nullable ALabel)
			return
		end
	end
src/parser/parser_prod.nit:2958,2--2980,4

nitc :: parser_prod $ AWhileExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwwhile == old_child then
			n_kwwhile = new_child.as(TKwwhile)
			return
		end
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_kwdo == old_child then
			n_kwdo = new_child.as(TKwdo)
			return
		end
		if _n_block == old_child then
			n_block = new_child.as(nullable AExpr)
			return
		end
		if _n_label == old_child then
			n_label = new_child.as(nullable ALabel)
			return
		end
	end
src/parser/parser_prod.nit:3227,2--3249,4

nitc :: parser_prod $ ALoopExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwloop == old_child then
			n_kwloop = new_child.as(TKwloop)
			return
		end
		if _n_block == old_child then
			n_block = new_child.as(nullable AExpr)
			return
		end
		if _n_label == old_child then
			n_label = new_child.as(nullable ALabel)
			return
		end
	end
src/parser/parser_prod.nit:3302,2--3316,4

nitc :: parser_prod $ AForExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwfor == old_child then
			n_kwfor = new_child.as(TKwfor)
			return
		end
		if n_groups.replace_child(old_child, new_child) then return
		if _n_kwdo == old_child then
			n_kwdo = new_child.as(TKwdo)
			return
		end
		if _n_block == old_child then
			n_block = new_child.as(nullable AExpr)
			return
		end
		if _n_label == old_child then
			n_label = new_child.as(nullable ALabel)
			return
		end
	end
src/parser/parser_prod.nit:3362,2--3381,4

nitc :: parser_prod $ AOrExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TKwor)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3704,2--3718,4

nitc :: parser_prod $ AImpliesExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TKwimplies)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3882,2--3896,4

nitc :: parser_prod $ AAndExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TKwand)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3759,2--3773,4

nitc :: parser_prod $ AStringExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_string == old_child then
			n_string = new_child.as(TString)
			return
		end
		if _n_annotations == old_child then
			n_annotations = new_child.as(nullable AAnnotations)
			return
		end
	end
src/parser/parser_prod.nit:6729,2--6739,4

nitc :: parser_prod $ AEndStringExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_string == old_child then
			n_string = new_child.as(TEndString)
			return
		end
	end
src/parser/parser_prod.nit:6826,2--6832,4

nitc :: parser_prod $ AStartStringExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_string == old_child then
			n_string = new_child.as(TStartString)
			return
		end
	end
src/parser/parser_prod.nit:6768,2--6774,4

nitc :: parser_prod $ AMidStringExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_string == old_child then
			n_string = new_child.as(TMidString)
			return
		end
	end
src/parser/parser_prod.nit:6797,2--6803,4

nitc :: parser_prod $ AMainMethPropdef :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_kwredef == old_child then
			n_kwredef = new_child.as(nullable TKwredef)
			return
		end
		if _n_block == old_child then
			n_block = new_child.as(nullable AExpr)
			return
		end
	end
src/parser/parser_prod.nit:1003,2--1013,4

nitc :: parser_prod $ ALtExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TLt)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4089,2--4103,4

nitc :: parser_prod $ ALeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TLe)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4144,2--4158,4

nitc :: parser_prod $ ALlExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TLl)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4199,2--4213,4

nitc :: parser_prod $ AGtExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TGt)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4254,2--4268,4

nitc :: parser_prod $ AGeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TGe)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4309,2--4323,4

nitc :: parser_prod $ AGgExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TGg)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4364,2--4378,4

nitc :: parser_prod $ APlusExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TPlus)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4474,2--4488,4

nitc :: parser_prod $ AMinusExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TMinus)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4529,2--4543,4

nitc :: parser_prod $ AStarshipExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TStarship)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4584,2--4598,4

nitc :: parser_prod $ AStarExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TStar)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4639,2--4653,4

nitc :: parser_prod $ AStarstarExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TStarstar)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4694,2--4708,4

nitc :: parser_prod $ ASlashExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TSlash)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4749,2--4763,4

nitc :: parser_prod $ APercentExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TPercent)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4804,2--4818,4

nitc :: parser_prod $ APipeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TPipe)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4859,2--4873,4

nitc :: parser_prod $ ACaretExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TCaret)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4914,2--4928,4

nitc :: parser_prod $ AAmpExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TAmp)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4969,2--4983,4

nitc :: parser_prod $ ACallAssignExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_qid == old_child then
			n_qid = new_child.as(AQid)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(TAssign)
			return
		end
		if _n_value == old_child then
			n_value = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5525,2--5547,4

nitc :: parser_prod $ ABraAssignExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
		if _n_assign == old_child then
			n_assign = new_child.as(TAssign)
			return
		end
		if _n_value == old_child then
			n_value = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5836,2--5854,4

nitc :: parser_prod $ AEqExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TEq)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:3979,2--3993,4

nitc :: parser_prod $ ANeExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_op == old_child then
			n_op = new_child.as(TNe)
			return
		end
		if _n_expr2 == old_child then
			n_expr2 = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:4034,2--4048,4

nitc :: parser_prod $ ACallReassignExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_qid == old_child then
			n_qid = new_child.as(AQid)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
		if _n_assign_op == old_child then
			n_assign_op = new_child.as(AAssignOp)
			return
		end
		if _n_value == old_child then
			n_value = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5606,2--5628,4

nitc :: parser_prod $ ABraReassignExpr :: replace_child
	redef fun replace_child(old_child: ANode, new_child: nullable ANode)
	do
		if _n_expr == old_child then
			n_expr = new_child.as(AExpr)
			return
		end
		if _n_args == old_child then
			n_args = new_child.as(AExprs)
			return
		end
		if _n_assign_op == old_child then
			n_assign_op = new_child.as(AAssignOp)
			return
		end
		if _n_value == old_child then
			n_value = new_child.as(AExpr)
			return
		end
	end
src/parser/parser_prod.nit:5904,2--5922,4