Property definitions

nitc $ ReduceAction :: action
	fun action(p: Parser) is abstract
src/parser/parser_work.nit:292,2--34

nitc $ ReduceAction0 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode4 = new Array[Object]
					var listnode6 = new Array[Object]
					var pclassdefnode5 = nodearraylist1
					assert pclassdefnode5 isa nullable AClassdef
					if pclassdefnode5 != null then
						listnode6.add(pclassdefnode5)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						null,
						listnode3,
						listnode4,
						listnode6
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:1807,2--1827,4

nitc $ ReduceAction1 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode4 = new Array[Object]
					var listnode6 = new Array[Object]
					var pmoduledeclnode2 = nodearraylist1
					assert pmoduledeclnode2 isa nullable AModuledecl
					var pclassdefnode5 = nodearraylist2
					assert pclassdefnode5 isa nullable AClassdef
					if pclassdefnode5 != null then
						listnode6.add(pclassdefnode5)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						pmoduledeclnode2,
						listnode3,
						listnode4,
						listnode6
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:1831,2--1854,4

nitc $ ReduceAction2 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode5 = new Array[Object]
					var listnode7 = new Array[Object]
					var listnode3 = nodearraylist1
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var pclassdefnode6 = nodearraylist2
					assert pclassdefnode6 isa nullable AClassdef
					if pclassdefnode6 != null then
						listnode7.add(pclassdefnode6)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						null,
						listnode4,
						listnode5,
						listnode7
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:1858,2--1882,4

nitc $ ReduceAction3 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode5 = new Array[Object]
					var listnode7 = new Array[Object]
					var pmoduledeclnode2 = nodearraylist1
					assert pmoduledeclnode2 isa nullable AModuledecl
					var listnode3 = nodearraylist2
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var pclassdefnode6 = nodearraylist3
					assert pclassdefnode6 isa nullable AClassdef
					if pclassdefnode6 != null then
						listnode7.add(pclassdefnode6)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						pmoduledeclnode2,
						listnode4,
						listnode5,
						listnode7
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:1886,2--1913,4

nitc $ ReduceAction4 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode5 = new Array[Object]
					var listnode7 = new Array[Object]
					var listnode4 = nodearraylist1
					assert listnode4 isa Array[Object]
					listnode5 = concat(listnode5, listnode4)
					var pclassdefnode6 = nodearraylist2
					assert pclassdefnode6 isa nullable AClassdef
					if pclassdefnode6 != null then
						listnode7.add(pclassdefnode6)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						null,
						listnode3,
						listnode5,
						listnode7
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:1917,2--1941,4

nitc $ ReduceAction5 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode5 = new Array[Object]
					var listnode7 = new Array[Object]
					var pmoduledeclnode2 = nodearraylist1
					assert pmoduledeclnode2 isa nullable AModuledecl
					var listnode4 = nodearraylist2
					assert listnode4 isa Array[Object]
					listnode5 = concat(listnode5, listnode4)
					var pclassdefnode6 = nodearraylist3
					assert pclassdefnode6 isa nullable AClassdef
					if pclassdefnode6 != null then
						listnode7.add(pclassdefnode6)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						pmoduledeclnode2,
						listnode3,
						listnode5,
						listnode7
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:1945,2--1972,4

nitc $ ReduceAction6 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode6 = new Array[Object]
					var listnode8 = new Array[Object]
					var listnode3 = nodearraylist1
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var listnode5 = nodearraylist2
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pclassdefnode7 = nodearraylist3
					assert pclassdefnode7 isa nullable AClassdef
					if pclassdefnode7 != null then
						listnode8.add(pclassdefnode7)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						null,
						listnode4,
						listnode6,
						listnode8
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:1976,2--2004,4

nitc $ ReduceAction7 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode6 = new Array[Object]
					var listnode8 = new Array[Object]
					var pmoduledeclnode2 = nodearraylist1
					assert pmoduledeclnode2 isa nullable AModuledecl
					var listnode3 = nodearraylist2
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var listnode5 = nodearraylist3
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pclassdefnode7 = nodearraylist4
					assert pclassdefnode7 isa nullable AClassdef
					if pclassdefnode7 != null then
						listnode8.add(pclassdefnode7)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						pmoduledeclnode2,
						listnode4,
						listnode6,
						listnode8
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2008,2--2039,4

nitc $ ReduceAction8 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode4 = new Array[Object]
					var listnode7 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					var pclassdefnode6 = nodearraylist2
					assert pclassdefnode6 isa nullable AClassdef
					listnode7 = concat(listnode7, listnode5)
					if pclassdefnode6 != null then
						listnode7.add(pclassdefnode6)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						null,
						listnode3,
						listnode4,
						listnode7
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2043,2--2067,4

nitc $ ReduceAction9 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode4 = new Array[Object]
					var listnode7 = new Array[Object]
					var pmoduledeclnode2 = nodearraylist1
					assert pmoduledeclnode2 isa nullable AModuledecl
					var listnode5 = nodearraylist2
					assert listnode5 isa Array[Object]
					var pclassdefnode6 = nodearraylist3
					assert pclassdefnode6 isa nullable AClassdef
					listnode7 = concat(listnode7, listnode5)
					if pclassdefnode6 != null then
						listnode7.add(pclassdefnode6)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						pmoduledeclnode2,
						listnode3,
						listnode4,
						listnode7
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2071,2--2098,4

nitc $ ReduceAction10 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode5 = new Array[Object]
					var listnode8 = new Array[Object]
					var listnode3 = nodearraylist1
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var listnode6 = nodearraylist2
					assert listnode6 isa Array[Object]
					var pclassdefnode7 = nodearraylist3
					assert pclassdefnode7 isa nullable AClassdef
					listnode8 = concat(listnode8, listnode6)
					if pclassdefnode7 != null then
						listnode8.add(pclassdefnode7)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						null,
						listnode4,
						listnode5,
						listnode8
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2102,2--2130,4

nitc $ ReduceAction11 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode5 = new Array[Object]
					var listnode8 = new Array[Object]
					var pmoduledeclnode2 = nodearraylist1
					assert pmoduledeclnode2 isa nullable AModuledecl
					var listnode3 = nodearraylist2
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var listnode6 = nodearraylist3
					assert listnode6 isa Array[Object]
					var pclassdefnode7 = nodearraylist4
					assert pclassdefnode7 isa nullable AClassdef
					listnode8 = concat(listnode8, listnode6)
					if pclassdefnode7 != null then
						listnode8.add(pclassdefnode7)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						pmoduledeclnode2,
						listnode4,
						listnode5,
						listnode8
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2134,2--2165,4

nitc $ ReduceAction12 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode5 = new Array[Object]
					var listnode8 = new Array[Object]
					var listnode4 = nodearraylist1
					assert listnode4 isa Array[Object]
					listnode5 = concat(listnode5, listnode4)
					var listnode6 = nodearraylist2
					assert listnode6 isa Array[Object]
					var pclassdefnode7 = nodearraylist3
					assert pclassdefnode7 isa nullable AClassdef
					listnode8 = concat(listnode8, listnode6)
					if pclassdefnode7 != null then
						listnode8.add(pclassdefnode7)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						null,
						listnode3,
						listnode5,
						listnode8
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2169,2--2197,4

nitc $ ReduceAction13 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode5 = new Array[Object]
					var listnode8 = new Array[Object]
					var pmoduledeclnode2 = nodearraylist1
					assert pmoduledeclnode2 isa nullable AModuledecl
					var listnode4 = nodearraylist2
					assert listnode4 isa Array[Object]
					listnode5 = concat(listnode5, listnode4)
					var listnode6 = nodearraylist3
					assert listnode6 isa Array[Object]
					var pclassdefnode7 = nodearraylist4
					assert pclassdefnode7 isa nullable AClassdef
					listnode8 = concat(listnode8, listnode6)
					if pclassdefnode7 != null then
						listnode8.add(pclassdefnode7)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						pmoduledeclnode2,
						listnode3,
						listnode5,
						listnode8
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2201,2--2232,4

nitc $ ReduceAction14 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode6 = new Array[Object]
					var listnode9 = new Array[Object]
					var listnode3 = nodearraylist1
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var listnode5 = nodearraylist2
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var listnode7 = nodearraylist3
					assert listnode7 isa Array[Object]
					var pclassdefnode8 = nodearraylist4
					assert pclassdefnode8 isa nullable AClassdef
					listnode9 = concat(listnode9, listnode7)
					if pclassdefnode8 != null then
						listnode9.add(pclassdefnode8)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						null,
						listnode4,
						listnode6,
						listnode9
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2236,2--2268,4

nitc $ ReduceAction15 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode6 = new Array[Object]
					var listnode9 = new Array[Object]
					var pmoduledeclnode2 = nodearraylist1
					assert pmoduledeclnode2 isa nullable AModuledecl
					var listnode3 = nodearraylist2
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var listnode5 = nodearraylist3
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var listnode7 = nodearraylist4
					assert listnode7 isa Array[Object]
					var pclassdefnode8 = nodearraylist5
					assert pclassdefnode8 isa nullable AClassdef
					listnode9 = concat(listnode9, listnode7)
					if pclassdefnode8 != null then
						listnode9.add(pclassdefnode8)
					end
					var pmodulenode1: nullable AModule = new AModule.init_amodule(
						pmoduledeclnode2,
						listnode4,
						listnode6,
						listnode9
					)
					node_list = pmodulenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2272,2--2307,4

nitc $ ReduceAction16 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmodulenode6 = nodearraylist2
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist4
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist5
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2311,2--2341,4

nitc $ ReduceAction17 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmodulenode6 = nodearraylist4
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist6
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2345,2--2379,4

nitc $ ReduceAction18 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmodulenode6 = nodearraylist4
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist6
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2383,2--2417,4

nitc $ ReduceAction19 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmodulenode6 = nodearraylist4
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist6
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2421,2--2455,4

nitc $ ReduceAction20 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmodulenode6 = nodearraylist4
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist6
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2459,2--2493,4

nitc $ ReduceAction21 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmodulenode6 = nodearraylist3
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist5
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist6
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2497,2--2530,4

nitc $ ReduceAction22 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmodulenode6 = nodearraylist5
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist7
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2534,2--2571,4

nitc $ ReduceAction23 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmodulenode6 = nodearraylist5
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist7
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2575,2--2612,4

nitc $ ReduceAction24 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmodulenode6 = nodearraylist5
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist7
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2616,2--2653,4

nitc $ ReduceAction25 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmodulenode6 = nodearraylist5
					assert tkwmodulenode6 isa nullable TKwmodule
					var pmodulenamenode7 = nodearraylist7
					assert pmodulenamenode7 isa nullable AModuleName
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmodulenode6,
						pmodulenamenode7,
						pannotationsnode8
					)
					node_list = pmoduledeclnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2657,2--2694,4

nitc $ ReduceAction26 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwimportnode4 = nodearraylist2
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist4
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist5
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2698,2--2724,4

nitc $ ReduceAction27 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwpublicnode3 = nodearraylist2
					assert tkwpublicnode3 isa nullable TKwpublic
					var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode3
					)
					var tkwimportnode4 = nodearraylist4
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist6
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist7
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2728,2--2758,4

nitc $ ReduceAction28 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwprivatenode3 = nodearraylist2
					assert tkwprivatenode3 isa nullable TKwprivate
					var pvisibilitynode2: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode3
					)
					var tkwimportnode4 = nodearraylist4
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist6
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist7
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2762,2--2792,4

nitc $ ReduceAction29 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwprotectednode3 = nodearraylist2
					assert tkwprotectednode3 isa nullable TKwprotected
					var pvisibilitynode2: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode3
					)
					var tkwimportnode4 = nodearraylist4
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist6
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist7
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2796,2--2826,4

nitc $ ReduceAction30 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwintrudenode3 = nodearraylist2
					assert tkwintrudenode3 isa nullable TKwintrude
					var pvisibilitynode2: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode3
					)
					var tkwimportnode4 = nodearraylist4
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist6
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist7
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2830,2--2860,4

nitc $ ReduceAction31 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwimportnode4 = nodearraylist3
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist5
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist6
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2864,2--2891,4

nitc $ ReduceAction32 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwpublicnode3 = nodearraylist3
					assert tkwpublicnode3 isa nullable TKwpublic
					var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode3
					)
					var tkwimportnode4 = nodearraylist5
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist7
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist8
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2895,2--2926,4

nitc $ ReduceAction33 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwprivatenode3 = nodearraylist3
					assert tkwprivatenode3 isa nullable TKwprivate
					var pvisibilitynode2: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode3
					)
					var tkwimportnode4 = nodearraylist5
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist7
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist8
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2930,2--2961,4

nitc $ ReduceAction34 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwprotectednode3 = nodearraylist3
					assert tkwprotectednode3 isa nullable TKwprotected
					var pvisibilitynode2: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode3
					)
					var tkwimportnode4 = nodearraylist5
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist7
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist8
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:2965,2--2996,4

nitc $ ReduceAction35 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwintrudenode3 = nodearraylist3
					assert tkwintrudenode3 isa nullable TKwintrude
					var pvisibilitynode2: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode3
					)
					var tkwimportnode4 = nodearraylist5
					assert tkwimportnode4 isa nullable TKwimport
					var pmodulenamenode5 = nodearraylist7
					assert pmodulenamenode5 isa nullable AModuleName
					var pannotationsnode6 = nodearraylist8
					assert pannotationsnode6 isa nullable AAnnotations
					var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
						pvisibilitynode2,
						tkwimportnode4,
						pmodulenamenode5,
						pannotationsnode6
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3000,2--3031,4

nitc $ ReduceAction36 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwimportnode4 = nodearraylist2
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist4
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3035,2--3057,4

nitc $ ReduceAction37 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwpublicnode3 = nodearraylist2
					assert tkwpublicnode3 isa nullable TKwpublic
					var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode3
					)
					var tkwimportnode4 = nodearraylist4
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist6
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3061,2--3087,4

nitc $ ReduceAction38 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwprivatenode3 = nodearraylist2
					assert tkwprivatenode3 isa nullable TKwprivate
					var pvisibilitynode2: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode3
					)
					var tkwimportnode4 = nodearraylist4
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist6
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3091,2--3117,4

nitc $ ReduceAction39 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwprotectednode3 = nodearraylist2
					assert tkwprotectednode3 isa nullable TKwprotected
					var pvisibilitynode2: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode3
					)
					var tkwimportnode4 = nodearraylist4
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist6
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3121,2--3147,4

nitc $ ReduceAction40 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwintrudenode3 = nodearraylist2
					assert tkwintrudenode3 isa nullable TKwintrude
					var pvisibilitynode2: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode3
					)
					var tkwimportnode4 = nodearraylist4
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist6
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3151,2--3177,4

nitc $ ReduceAction41 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwimportnode4 = nodearraylist3
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist5
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3181,2--3204,4

nitc $ ReduceAction42 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwpublicnode3 = nodearraylist3
					assert tkwpublicnode3 isa nullable TKwpublic
					var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode3
					)
					var tkwimportnode4 = nodearraylist5
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist7
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3208,2--3235,4

nitc $ ReduceAction43 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwprivatenode3 = nodearraylist3
					assert tkwprivatenode3 isa nullable TKwprivate
					var pvisibilitynode2: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode3
					)
					var tkwimportnode4 = nodearraylist5
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist7
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3239,2--3266,4

nitc $ ReduceAction44 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwprotectednode3 = nodearraylist3
					assert tkwprotectednode3 isa nullable TKwprotected
					var pvisibilitynode2: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode3
					)
					var tkwimportnode4 = nodearraylist5
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist7
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3270,2--3297,4

nitc $ ReduceAction45 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwintrudenode3 = nodearraylist3
					assert tkwintrudenode3 isa nullable TKwintrude
					var pvisibilitynode2: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode3
					)
					var tkwimportnode4 = nodearraylist5
					assert tkwimportnode4 isa nullable TKwimport
					var tkwendnode5 = nodearraylist7
					assert tkwendnode5 isa nullable TKwend
					var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
						pvisibilitynode2,
						tkwimportnode4,
						tkwendnode5
					)
					node_list = pimportnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3301,2--3328,4

nitc $ ReduceAction46 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pclassdefnode1 = nodearraylist1
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3332,2--3339,4

nitc $ ReduceAction47 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var ppropdefnode2 = nodearraylist1
					assert ppropdefnode2 isa nullable APropdef
					if ppropdefnode2 != null then
						listnode3.add(ppropdefnode2)
					end
					var pclassdefnode1: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
						listnode3
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3343,2--3359,4

nitc $ ReduceAction48 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var ppropdefnode2 = nodearraylist1
					assert ppropdefnode2 isa nullable APropdef
					if ppropdefnode2 != null then
						listnode3.add(ppropdefnode2)
					end
					var pclassdefnode1: nullable AMainClassdef = new AMainClassdef.init_amainclassdef(
						listnode3
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3363,2--3378,4

nitc $ ReduceAction49 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					node_list = null
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3382,2--3387,4

nitc $ ReduceAction50 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					node_list = null
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3391,2--3397,4

nitc $ ReduceAction51 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode5 = new Array[Object]
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					if pexprnode4 != null then
						listnode5.add(pexprnode4)
					end
					var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode5,
						null
					)
					var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
						null,
						pexprnode3
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3401,2--3422,4

nitc $ ReduceAction52 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode6 = new Array[Object]
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var listnode5 = nodearraylist3
					assert listnode5 isa Array[Object]
					if pexprnode4 != null then
						listnode6.add(pexprnode4)
					end
					listnode6 = concat(listnode6, listnode5)
					var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode6,
						null
					)
					var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
						null,
						pexprnode3
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3426,2--3451,4

nitc $ ReduceAction53 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
						null,
						pexprnode3
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3455,2--3468,4

nitc $ ReduceAction54 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var pclasskindnode6 = nodearraylist2
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist4
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist5
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist6
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3472,2--3512,4

nitc $ ReduceAction55 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist7
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist8
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3516,2--3560,4

nitc $ ReduceAction56 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist7
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist8
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3564,2--3608,4

nitc $ ReduceAction57 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist7
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist8
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3612,2--3656,4

nitc $ ReduceAction58 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist7
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist8
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3660,2--3704,4

nitc $ ReduceAction59 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var pclasskindnode6 = nodearraylist3
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist5
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist6
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist7
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3708,2--3751,4

nitc $ ReduceAction60 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist8
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3755,2--3802,4

nitc $ ReduceAction61 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist8
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3806,2--3853,4

nitc $ ReduceAction62 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist8
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3857,2--3904,4

nitc $ ReduceAction63 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var listnode12 = nodearraylist8
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						null,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3908,2--3955,4

nitc $ ReduceAction64 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var pclasskindnode6 = nodearraylist2
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist4
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist5
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist6
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist7
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:3959,2--4002,4

nitc $ ReduceAction65 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist7
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist8
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4006,2--4053,4

nitc $ ReduceAction66 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist7
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist8
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4057,2--4104,4

nitc $ ReduceAction67 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist7
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist8
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4108,2--4155,4

nitc $ ReduceAction68 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist7
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist8
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4159,2--4206,4

nitc $ ReduceAction69 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var pclasskindnode6 = nodearraylist3
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist5
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist6
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist7
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist8
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4210,2--4256,4

nitc $ ReduceAction70 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist8
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist9
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4260,2--4310,4

nitc $ ReduceAction71 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist8
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist9
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4314,2--4364,4

nitc $ ReduceAction72 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist8
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist9
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4368,2--4418,4

nitc $ ReduceAction73 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var listnode13 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var pexterncodeblocknode11 = nodearraylist8
					assert pexterncodeblocknode11 isa nullable AExternCodeBlock
					var listnode12 = nodearraylist9
					assert listnode12 isa Array[Object]
					listnode13 = concat(listnode13, listnode12)
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						null,
						listnode9,
						null,
						pexterncodeblocknode11,
						listnode13,
						tkwendnode14
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4422,2--4472,4

nitc $ ReduceAction74 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var pclasskindnode6 = nodearraylist2
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist4
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist5
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist7
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist8
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist9
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist10
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4476,2--4527,4

nitc $ ReduceAction75 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist7
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist9
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist10
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist11
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist12
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4531,2--4586,4

nitc $ ReduceAction76 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist7
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist9
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist10
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist11
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist12
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4590,2--4645,4

nitc $ ReduceAction77 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist7
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist9
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist10
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist11
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist12
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4649,2--4704,4

nitc $ ReduceAction78 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist7
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist9
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist10
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist11
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist12
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4708,2--4763,4

nitc $ ReduceAction79 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var pclasskindnode6 = nodearraylist3
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist5
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist6
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist8
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist9
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist10
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist11
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4767,2--4821,4

nitc $ ReduceAction80 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist8
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist10
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist11
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist12
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist13
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4825,2--4883,4

nitc $ ReduceAction81 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist8
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist10
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist11
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist12
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist13
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4887,2--4945,4

nitc $ ReduceAction82 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist8
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist10
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist11
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist12
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist13
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:4949,2--5007,4

nitc $ ReduceAction83 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist8
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist10
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist11
					assert tcbranode11 isa nullable TCbra
					var listnode13 = nodearraylist12
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist13
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						null,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5011,2--5069,4

nitc $ ReduceAction84 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var pclasskindnode6 = nodearraylist2
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist4
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist5
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist7
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist8
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist9
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist10
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist11
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5073,2--5127,4

nitc $ ReduceAction85 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist7
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist9
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist10
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist11
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist12
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist13
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5131,2--5189,4

nitc $ ReduceAction86 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist7
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist9
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist10
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist11
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist12
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist13
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5193,2--5251,4

nitc $ ReduceAction87 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist7
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist9
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist10
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist11
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist12
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist13
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5255,2--5313,4

nitc $ ReduceAction88 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var pclasskindnode6 = nodearraylist4
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist7
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist9
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist10
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist11
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist12
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist13
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5317,2--5375,4

nitc $ ReduceAction89 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var pclasskindnode6 = nodearraylist3
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist5
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist6
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist8
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist9
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist10
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist11
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist12
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5379,2--5436,4

nitc $ ReduceAction90 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist14 = p.pop
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist8
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist10
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist11
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist12
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist13
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist14
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5440,2--5501,4

nitc $ ReduceAction91 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist14 = p.pop
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist8
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist10
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist11
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist12
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist13
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist14
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5505,2--5566,4

nitc $ ReduceAction92 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist14 = p.pop
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist8
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist10
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist11
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist12
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist13
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist14
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5570,2--5631,4

nitc $ ReduceAction93 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist14 = p.pop
					var nodearraylist13 = p.pop
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode10 = new Array[Object]
					var listnode14 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var pclasskindnode6 = nodearraylist5
					assert pclasskindnode6 isa nullable AClasskind
					var pqclassidnode7 = nodearraylist7
					assert pqclassidnode7 isa nullable AQclassid
					var tobranode8 = nodearraylist8
					assert tobranode8 isa nullable TObra
					var listnode9 = nodearraylist10
					assert listnode9 isa Array[Object]
					listnode10 = concat(listnode10, listnode9)
					var tcbranode11 = nodearraylist11
					assert tcbranode11 isa nullable TCbra
					var pexterncodeblocknode12 = nodearraylist12
					assert pexterncodeblocknode12 isa nullable AExternCodeBlock
					var listnode13 = nodearraylist13
					assert listnode13 isa Array[Object]
					listnode14 = concat(listnode14, listnode13)
					var tkwendnode15 = nodearraylist14
					assert tkwendnode15 isa nullable TKwend
					var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						pclasskindnode6,
						pqclassidnode7,
						tobranode8,
						listnode10,
						tcbranode11,
						pexterncodeblocknode12,
						listnode14,
						tkwendnode15
					)
					node_list = pclassdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5635,2--5696,4

nitc $ ReduceAction94 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwclassnode2 = nodearraylist1
					assert tkwclassnode2 isa nullable TKwclass
					var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
						tkwclassnode2
					)
					node_list = pclasskindnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5700,2--5711,4

nitc $ ReduceAction95 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwabstractnode2 = nodearraylist1
					assert tkwabstractnode2 isa nullable TKwabstract
					var tkwclassnode3 = nodearraylist2
					assert tkwclassnode3 isa nullable TKwclass
					var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
						tkwabstractnode2,
						tkwclassnode3
					)
					node_list = pclasskindnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5715,2--5730,4

nitc $ ReduceAction96 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwinterfacenode2 = nodearraylist1
					assert tkwinterfacenode2 isa nullable TKwinterface
					var pclasskindnode1: nullable AInterfaceClasskind = new AInterfaceClasskind.init_ainterfaceclasskind(
						tkwinterfacenode2
					)
					node_list = pclasskindnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5734,2--5745,4

nitc $ ReduceAction97 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwenumnode2 = nodearraylist1
					assert tkwenumnode2 isa nullable TKwenum
					var pclasskindnode1: nullable AEnumClasskind = new AEnumClasskind.init_aenumclasskind(
						tkwenumnode2
					)
					node_list = pclasskindnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5749,2--5760,4

nitc $ ReduceAction98 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwexternnode2 = nodearraylist1
					assert tkwexternnode2 isa nullable TKwextern
					var tkwclassnode3 = nodearraylist2
					assert tkwclassnode3 isa nullable TKwclass
					var pclasskindnode1: nullable AExternClasskind = new AExternClasskind.init_aexternclasskind(
						tkwexternnode2,
						tkwclassnode3
					)
					node_list = pclasskindnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5764,2--5779,4

nitc $ ReduceAction99 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwsubsetnode2 = nodearraylist1
					assert tkwsubsetnode2 isa nullable TKwsubset
					var pclasskindnode1: nullable ASubsetClasskind = new ASubsetClasskind.init_asubsetclasskind(
						tkwsubsetnode2
					)
					node_list = pclasskindnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5783,2--5794,4

nitc $ ReduceAction100 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pformaldefnode1 = nodearraylist1
					if pformaldefnode1 != null then
						listnode2.add(pformaldefnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5798,2--5809,4

nitc $ ReduceAction101 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pformaldefnode1 = nodearraylist1
					var listnode2 = nodearraylist2
					assert listnode2 isa Array[Object]
					if pformaldefnode1 != null then
						listnode3.add(pformaldefnode1)
					end
					listnode3 = concat(listnode3, listnode2)
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5813,2--5828,4

nitc $ ReduceAction102 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var listnode1 = new Array[Object]
					node_list = listnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5832,2--5838,4

nitc $ ReduceAction103 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pformaldefnode1 = nodearraylist3
					node_list = pformaldefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5842,2--5851,4

nitc $ ReduceAction104 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tclassidnode2 = nodearraylist1
					assert tclassidnode2 isa nullable TClassid
					var ptypenode3 = nodearraylist2
					assert ptypenode3 isa nullable AType
					var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
						tclassidnode2,
						ptypenode3,
						null
					)
					node_list = pformaldefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5855,2--5872,4

nitc $ ReduceAction105 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tclassidnode2 = nodearraylist1
					assert tclassidnode2 isa nullable TClassid
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var pannotationsnode4 = nodearraylist2
					assert pannotationsnode4 isa nullable AAnnotations
					var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
						tclassidnode2,
						ptypenode3,
						pannotationsnode4
					)
					node_list = pformaldefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5876,2--5896,4

nitc $ ReduceAction106 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwsupernode6 = nodearraylist2
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist4
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist5
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5900,2--5929,4

nitc $ ReduceAction107 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwsupernode6 = nodearraylist4
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist6
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5933,2--5966,4

nitc $ ReduceAction108 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwsupernode6 = nodearraylist4
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist6
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:5970,2--6003,4

nitc $ ReduceAction109 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwsupernode6 = nodearraylist4
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist6
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6007,2--6040,4

nitc $ ReduceAction110 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwsupernode6 = nodearraylist4
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist6
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6044,2--6077,4

nitc $ ReduceAction111 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwsupernode6 = nodearraylist3
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist5
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist6
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6081,2--6113,4

nitc $ ReduceAction112 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwsupernode6 = nodearraylist5
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist7
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6117,2--6153,4

nitc $ ReduceAction113 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwsupernode6 = nodearraylist5
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist7
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6157,2--6193,4

nitc $ ReduceAction114 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwsupernode6 = nodearraylist5
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist7
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6197,2--6233,4

nitc $ ReduceAction115 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwsupernode6 = nodearraylist5
					assert tkwsupernode6 isa nullable TKwsuper
					var ptypenode7 = nodearraylist7
					assert ptypenode7 isa nullable AType
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwsupernode6,
						ptypenode7,
						pannotationsnode8
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6237,2--6273,4

nitc $ ReduceAction116 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					listnode2 = concat(listnode2, listnode1)
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6277,2--6288,4

nitc $ ReduceAction117 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var ppropdefnode1 = nodearraylist1
					if ppropdefnode1 != null then
						listnode2.add(ppropdefnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6292,2--6303,4

nitc $ ReduceAction118 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode1 = new Array[Object]
					node_list = listnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6307,2--6314,4

nitc $ ReduceAction119 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ppropdefnode1 = nodearraylist1
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6318,2--6326,4

nitc $ ReduceAction120 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist2
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist5
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist6
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist7
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6330,2--6376,4

nitc $ ReduceAction121 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6380,2--6430,4

nitc $ ReduceAction122 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6434,2--6484,4

nitc $ ReduceAction123 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6488,2--6538,4

nitc $ ReduceAction124 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6542,2--6592,4

nitc $ ReduceAction125 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist3
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6596,2--6645,4

nitc $ ReduceAction126 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6649,2--6702,4

nitc $ ReduceAction127 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6706,2--6759,4

nitc $ ReduceAction128 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6763,2--6816,4

nitc $ ReduceAction129 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6820,2--6873,4

nitc $ ReduceAction130 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist2
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6877,2--6926,4

nitc $ ReduceAction131 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6930,2--6983,4

nitc $ ReduceAction132 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:6987,2--7040,4

nitc $ ReduceAction133 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7044,2--7097,4

nitc $ ReduceAction134 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7101,2--7154,4

nitc $ ReduceAction135 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist3
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7158,2--7210,4

nitc $ ReduceAction136 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7214,2--7270,4

nitc $ ReduceAction137 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7274,2--7330,4

nitc $ ReduceAction138 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7334,2--7390,4

nitc $ ReduceAction139 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7394,2--7450,4

nitc $ ReduceAction140 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist2
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7454,2--7494,4

nitc $ ReduceAction141 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7498,2--7542,4

nitc $ ReduceAction142 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7546,2--7590,4

nitc $ ReduceAction143 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7594,2--7638,4

nitc $ ReduceAction144 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7642,2--7686,4

nitc $ ReduceAction145 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist3
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7690,2--7733,4

nitc $ ReduceAction146 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7737,2--7784,4

nitc $ ReduceAction147 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7788,2--7835,4

nitc $ ReduceAction148 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7839,2--7886,4

nitc $ ReduceAction149 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7890,2--7937,4

nitc $ ReduceAction150 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwisanode8 = nodearraylist2
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist3
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist4
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist5
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7941,2--7988,4

nitc $ ReduceAction151 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwisanode8 = nodearraylist4
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist5
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist6
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist7
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:7992,2--8043,4

nitc $ ReduceAction152 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwisanode8 = nodearraylist4
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist5
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist6
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist7
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8047,2--8098,4

nitc $ ReduceAction153 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwisanode8 = nodearraylist4
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist5
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist6
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist7
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8102,2--8153,4

nitc $ ReduceAction154 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwisanode8 = nodearraylist4
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist5
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist6
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist7
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8157,2--8208,4

nitc $ ReduceAction155 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwisanode8 = nodearraylist3
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist4
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist5
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist6
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8212,2--8262,4

nitc $ ReduceAction156 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwisanode8 = nodearraylist5
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist6
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist7
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist8
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8266,2--8320,4

nitc $ ReduceAction157 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwisanode8 = nodearraylist5
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist6
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist7
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist8
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8324,2--8378,4

nitc $ ReduceAction158 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwisanode8 = nodearraylist5
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist6
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist7
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist8
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8382,2--8436,4

nitc $ ReduceAction159 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwisanode8 = nodearraylist5
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var tkwdonode19 = nodearraylist6
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist7
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist8
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8440,2--8494,4

nitc $ ReduceAction160 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwisanode8 = nodearraylist2
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist3
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist4
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist5
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist6
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8498,2--8548,4

nitc $ ReduceAction161 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwisanode8 = nodearraylist4
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist5
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist6
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist7
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist8
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8552,2--8606,4

nitc $ ReduceAction162 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwisanode8 = nodearraylist4
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist5
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist6
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist7
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist8
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8610,2--8664,4

nitc $ ReduceAction163 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwisanode8 = nodearraylist4
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist5
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist6
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist7
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist8
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8668,2--8722,4

nitc $ ReduceAction164 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwisanode8 = nodearraylist4
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist5
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist6
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist7
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist8
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8726,2--8780,4

nitc $ ReduceAction165 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwisanode8 = nodearraylist3
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist4
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist5
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist6
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist7
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8784,2--8837,4

nitc $ ReduceAction166 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwisanode8 = nodearraylist5
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist6
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist7
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist8
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist9
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8841,2--8898,4

nitc $ ReduceAction167 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwisanode8 = nodearraylist5
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist6
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist7
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist8
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist9
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8902,2--8959,4

nitc $ ReduceAction168 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwisanode8 = nodearraylist5
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist6
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist7
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist8
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist9
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:8963,2--9020,4

nitc $ ReduceAction169 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwisanode8 = nodearraylist5
					assert tkwisanode8 isa nullable TKwisa
					var listnode13 = new Array[Object]
					var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode13,
						null,
						null
					)
					var pannotationsnode16 = nodearraylist6
					assert pannotationsnode16 isa nullable AAnnotations
					var tkwdonode19 = nodearraylist7
					assert tkwdonode19 isa nullable TKwdo
					var pexprnode20 = nodearraylist8
					assert pexprnode20 isa nullable AExpr
					var tkwendnode21 = nodearraylist9
					assert tkwendnode21 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						tkwisanode8,
						null,
						null,
						psignaturenode11,
						pannotationsnode16,
						null,
						null,
						tkwdonode19,
						pexprnode20,
						tkwendnode21
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9024,2--9081,4

nitc $ ReduceAction170 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist3
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist4
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9085,2--9122,4

nitc $ ReduceAction171 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9126,2--9167,4

nitc $ ReduceAction172 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9171,2--9212,4

nitc $ ReduceAction173 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9216,2--9257,4

nitc $ ReduceAction174 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9261,2--9302,4

nitc $ ReduceAction175 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9306,2--9346,4

nitc $ ReduceAction176 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9350,2--9394,4

nitc $ ReduceAction177 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9398,2--9442,4

nitc $ ReduceAction178 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9446,2--9490,4

nitc $ ReduceAction179 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9494,2--9538,4

nitc $ ReduceAction180 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9542,2--9582,4

nitc $ ReduceAction181 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9586,2--9630,4

nitc $ ReduceAction182 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9634,2--9678,4

nitc $ ReduceAction183 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9682,2--9726,4

nitc $ ReduceAction184 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9730,2--9774,4

nitc $ ReduceAction185 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9778,2--9821,4

nitc $ ReduceAction186 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9825,2--9872,4

nitc $ ReduceAction187 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9876,2--9923,4

nitc $ ReduceAction188 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9927,2--9974,4

nitc $ ReduceAction189 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:9978,2--10025,4

nitc $ ReduceAction190 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist3
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist4
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist5
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist6
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10029,2--10072,4

nitc $ ReduceAction191 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10076,2--10123,4

nitc $ ReduceAction192 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10127,2--10174,4

nitc $ ReduceAction193 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10178,2--10225,4

nitc $ ReduceAction194 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10229,2--10276,4

nitc $ ReduceAction195 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist5
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist6
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist7
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10280,2--10326,4

nitc $ ReduceAction196 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10330,2--10380,4

nitc $ ReduceAction197 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10384,2--10434,4

nitc $ ReduceAction198 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10438,2--10488,4

nitc $ ReduceAction199 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10492,2--10542,4

nitc $ ReduceAction200 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist5
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist6
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist7
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10546,2--10592,4

nitc $ ReduceAction201 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10596,2--10646,4

nitc $ ReduceAction202 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10650,2--10700,4

nitc $ ReduceAction203 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10704,2--10754,4

nitc $ ReduceAction204 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10758,2--10808,4

nitc $ ReduceAction205 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10812,2--10861,4

nitc $ ReduceAction206 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10865,2--10918,4

nitc $ ReduceAction207 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10922,2--10975,4

nitc $ ReduceAction208 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:10979,2--11032,4

nitc $ ReduceAction209 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11036,2--11089,4

nitc $ ReduceAction210 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist3
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist4
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist5
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist6
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist7
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11093,2--11139,4

nitc $ ReduceAction211 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11143,2--11193,4

nitc $ ReduceAction212 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11197,2--11247,4

nitc $ ReduceAction213 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11251,2--11301,4

nitc $ ReduceAction214 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11305,2--11355,4

nitc $ ReduceAction215 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11359,2--11408,4

nitc $ ReduceAction216 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11412,2--11465,4

nitc $ ReduceAction217 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11469,2--11522,4

nitc $ ReduceAction218 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11526,2--11579,4

nitc $ ReduceAction219 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11583,2--11636,4

nitc $ ReduceAction220 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11640,2--11689,4

nitc $ ReduceAction221 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11693,2--11746,4

nitc $ ReduceAction222 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11750,2--11803,4

nitc $ ReduceAction223 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11807,2--11860,4

nitc $ ReduceAction224 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11864,2--11917,4

nitc $ ReduceAction225 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11921,2--11973,4

nitc $ ReduceAction226 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:11977,2--12033,4

nitc $ ReduceAction227 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12037,2--12093,4

nitc $ ReduceAction228 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12097,2--12153,4

nitc $ ReduceAction229 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12157,2--12213,4

nitc $ ReduceAction230 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist2
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist5
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist6
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12217,2--12260,4

nitc $ ReduceAction231 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12264,2--12311,4

nitc $ ReduceAction232 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12315,2--12362,4

nitc $ ReduceAction233 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12366,2--12413,4

nitc $ ReduceAction234 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12417,2--12464,4

nitc $ ReduceAction235 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist3
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12468,2--12514,4

nitc $ ReduceAction236 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12518,2--12568,4

nitc $ ReduceAction237 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12572,2--12622,4

nitc $ ReduceAction238 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12626,2--12676,4

nitc $ ReduceAction239 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12680,2--12730,4

nitc $ ReduceAction240 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist2
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12734,2--12780,4

nitc $ ReduceAction241 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12784,2--12834,4

nitc $ ReduceAction242 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12838,2--12888,4

nitc $ ReduceAction243 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12892,2--12942,4

nitc $ ReduceAction244 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist4
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:12946,2--12996,4

nitc $ ReduceAction245 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwmethnode6 = nodearraylist3
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13000,2--13049,4

nitc $ ReduceAction246 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist9
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist10
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13053,2--13106,4

nitc $ ReduceAction247 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist9
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist10
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13110,2--13163,4

nitc $ ReduceAction248 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist9
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist10
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13167,2--13220,4

nitc $ ReduceAction249 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwmethnode6 = nodearraylist5
					assert tkwmethnode6 isa nullable TKwmeth
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist9
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist10
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwmethnode6,
						null,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13224,2--13277,4

nitc $ ReduceAction250 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist2
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist3
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist4
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist5
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13281,2--13318,4

nitc $ ReduceAction251 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13322,2--13363,4

nitc $ ReduceAction252 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13367,2--13408,4

nitc $ ReduceAction253 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13412,2--13453,4

nitc $ ReduceAction254 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13457,2--13498,4

nitc $ ReduceAction255 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist3
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist4
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist5
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist6
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13502,2--13542,4

nitc $ ReduceAction256 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13546,2--13590,4

nitc $ ReduceAction257 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13594,2--13638,4

nitc $ ReduceAction258 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13642,2--13686,4

nitc $ ReduceAction259 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13690,2--13734,4

nitc $ ReduceAction260 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist2
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist3
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist4
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist5
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist7
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13738,2--13782,4

nitc $ ReduceAction261 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist7
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist9
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13786,2--13834,4

nitc $ ReduceAction262 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist7
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist9
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13838,2--13886,4

nitc $ ReduceAction263 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist7
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist9
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13890,2--13938,4

nitc $ ReduceAction264 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist7
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist9
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13942,2--13990,4

nitc $ ReduceAction265 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist3
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist4
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist5
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist6
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist8
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:13994,2--14041,4

nitc $ ReduceAction266 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist8
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist10
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist11
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14045,2--14096,4

nitc $ ReduceAction267 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist8
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist10
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist11
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14100,2--14151,4

nitc $ ReduceAction268 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist8
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist10
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist11
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14155,2--14206,4

nitc $ ReduceAction269 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tassignnode9 = nodearraylist8
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist10
					assert pexprnode10 isa nullable AExpr
					var pannotationsnode11 = nodearraylist11
					assert pannotationsnode11 isa nullable AAnnotations
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						tassignnode9,
						pexprnode10,
						pannotationsnode11,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14210,2--14261,4

nitc $ ReduceAction270 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist2
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist3
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist4
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist5
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist6
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14265,2--14305,4

nitc $ ReduceAction271 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14309,2--14353,4

nitc $ ReduceAction272 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14357,2--14401,4

nitc $ ReduceAction273 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14405,2--14449,4

nitc $ ReduceAction274 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14453,2--14497,4

nitc $ ReduceAction275 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist3
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist4
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist5
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist6
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist7
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14501,2--14544,4

nitc $ ReduceAction276 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14548,2--14595,4

nitc $ ReduceAction277 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14599,2--14646,4

nitc $ ReduceAction278 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14650,2--14697,4

nitc $ ReduceAction279 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14701,2--14748,4

nitc $ ReduceAction280 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist2
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist3
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist4
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist5
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist6
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist7
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14752,2--14795,4

nitc $ ReduceAction281 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14799,2--14846,4

nitc $ ReduceAction282 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14850,2--14897,4

nitc $ ReduceAction283 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14901,2--14948,4

nitc $ ReduceAction284 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:14952,2--14999,4

nitc $ ReduceAction285 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist3
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist4
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist5
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist6
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15003,2--15049,4

nitc $ ReduceAction286 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist9
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15053,2--15103,4

nitc $ ReduceAction287 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist9
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15107,2--15157,4

nitc $ ReduceAction288 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist9
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15161,2--15211,4

nitc $ ReduceAction289 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist9
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15215,2--15265,4

nitc $ ReduceAction290 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist2
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist3
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist4
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist5
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist6
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist7
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15269,2--15312,4

nitc $ ReduceAction291 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15316,2--15363,4

nitc $ ReduceAction292 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15367,2--15414,4

nitc $ ReduceAction293 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15418,2--15465,4

nitc $ ReduceAction294 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15469,2--15516,4

nitc $ ReduceAction295 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist3
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist4
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist5
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist6
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist7
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist8
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15520,2--15566,4

nitc $ ReduceAction296 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15570,2--15620,4

nitc $ ReduceAction297 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15624,2--15674,4

nitc $ ReduceAction298 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15678,2--15728,4

nitc $ ReduceAction299 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						null,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15732,2--15782,4

nitc $ ReduceAction300 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist2
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist3
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist4
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist5
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist6
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist7
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist8
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15786,2--15832,4

nitc $ ReduceAction301 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15836,2--15886,4

nitc $ ReduceAction302 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15890,2--15940,4

nitc $ ReduceAction303 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15944,2--15994,4

nitc $ ReduceAction304 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist4
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist8
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist10
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:15998,2--16048,4

nitc $ ReduceAction305 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwvarnode6 = nodearraylist3
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist4
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist5
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist6
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist7
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist9
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16052,2--16101,4

nitc $ ReduceAction306 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist9
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist11
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16105,2--16158,4

nitc $ ReduceAction307 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist9
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist11
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16162,2--16215,4

nitc $ ReduceAction308 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist9
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist11
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16219,2--16272,4

nitc $ ReduceAction309 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwvarnode6 = nodearraylist5
					assert tkwvarnode6 isa nullable TKwvar
					var tidnode7 = nodearraylist6
					assert tidnode7 isa nullable TId
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var tkwdonode12 = nodearraylist9
					assert tkwdonode12 isa nullable TKwdo
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var tkwendnode14 = nodearraylist11
					assert tkwendnode14 isa nullable TKwend
					var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwvarnode6,
						tidnode7,
						ptypenode8,
						null,
						null,
						pannotationsnode11,
						tkwdonode12,
						pexprnode13,
						tkwendnode14
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16276,2--16329,4

nitc $ ReduceAction310 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwinitnode7 = nodearraylist2
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist3
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist4
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist5
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist6
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16333,2--16376,4

nitc $ ReduceAction311 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16380,2--16427,4

nitc $ ReduceAction312 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16431,2--16478,4

nitc $ ReduceAction313 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16482,2--16529,4

nitc $ ReduceAction314 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16533,2--16580,4

nitc $ ReduceAction315 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwinitnode7 = nodearraylist3
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist5
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist6
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist7
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16584,2--16630,4

nitc $ ReduceAction316 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16634,2--16684,4

nitc $ ReduceAction317 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16688,2--16738,4

nitc $ ReduceAction318 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16742,2--16792,4

nitc $ ReduceAction319 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16796,2--16846,4

nitc $ ReduceAction320 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwinitnode7 = nodearraylist2
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist5
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist6
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist7
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16850,2--16896,4

nitc $ ReduceAction321 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16900,2--16950,4

nitc $ ReduceAction322 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:16954,2--17004,4

nitc $ ReduceAction323 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17008,2--17058,4

nitc $ ReduceAction324 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17062,2--17112,4

nitc $ ReduceAction325 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwinitnode7 = nodearraylist3
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17116,2--17165,4

nitc $ ReduceAction326 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17169,2--17222,4

nitc $ ReduceAction327 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17226,2--17279,4

nitc $ ReduceAction328 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17283,2--17336,4

nitc $ ReduceAction329 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						null,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17340,2--17393,4

nitc $ ReduceAction330 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwinitnode7 = nodearraylist2
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist3
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist4
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist5
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist6
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist7
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17397,2--17443,4

nitc $ ReduceAction331 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17447,2--17497,4

nitc $ ReduceAction332 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17501,2--17551,4

nitc $ ReduceAction333 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17555,2--17605,4

nitc $ ReduceAction334 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17609,2--17659,4

nitc $ ReduceAction335 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwinitnode7 = nodearraylist3
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17663,2--17712,4

nitc $ ReduceAction336 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17716,2--17769,4

nitc $ ReduceAction337 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17773,2--17826,4

nitc $ ReduceAction338 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17830,2--17883,4

nitc $ ReduceAction339 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						null,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17887,2--17940,4

nitc $ ReduceAction340 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwinitnode7 = nodearraylist2
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist6
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist7
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist8
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17944,2--17993,4

nitc $ ReduceAction341 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:17997,2--18050,4

nitc $ ReduceAction342 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18054,2--18107,4

nitc $ ReduceAction343 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18111,2--18164,4

nitc $ ReduceAction344 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwinitnode7 = nodearraylist4
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist8
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist9
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist10
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18168,2--18221,4

nitc $ ReduceAction345 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwinitnode7 = nodearraylist3
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist7
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist8
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist9
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18225,2--18277,4

nitc $ ReduceAction346 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18281,2--18337,4

nitc $ ReduceAction347 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18341,2--18397,4

nitc $ ReduceAction348 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18401,2--18457,4

nitc $ ReduceAction349 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwinitnode7 = nodearraylist5
					assert tkwinitnode7 isa nullable TKwinit
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var tkwdonode15 = nodearraylist9
					assert tkwdonode15 isa nullable TKwdo
					var pexprnode16 = nodearraylist10
					assert pexprnode16 isa nullable AExpr
					var tkwendnode17 = nodearraylist11
					assert tkwendnode17 isa nullable TKwend
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						tkwinitnode7,
						null,
						null,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						null,
						null,
						tkwdonode15,
						pexprnode16,
						tkwendnode17
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18461,2--18517,4

nitc $ ReduceAction350 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwtypenode6 = nodearraylist2
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist3
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist4
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist5
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18521,2--18553,4

nitc $ ReduceAction351 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwtypenode6 = nodearraylist4
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist5
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist7
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18557,2--18593,4

nitc $ ReduceAction352 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwtypenode6 = nodearraylist4
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist5
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist7
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18597,2--18633,4

nitc $ ReduceAction353 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwtypenode6 = nodearraylist4
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist5
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist7
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18637,2--18673,4

nitc $ ReduceAction354 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwtypenode6 = nodearraylist4
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist5
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist6
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist7
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18677,2--18713,4

nitc $ ReduceAction355 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwtypenode6 = nodearraylist3
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist4
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist5
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist6
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18717,2--18752,4

nitc $ ReduceAction356 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwtypenode6 = nodearraylist5
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist8
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18756,2--18795,4

nitc $ ReduceAction357 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwtypenode6 = nodearraylist5
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist8
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18799,2--18838,4

nitc $ ReduceAction358 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwtypenode6 = nodearraylist5
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist8
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18842,2--18881,4

nitc $ ReduceAction359 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwtypenode6 = nodearraylist5
					assert tkwtypenode6 isa nullable TKwtype
					var pqclassidnode7 = nodearraylist6
					assert pqclassidnode7 isa nullable AQclassid
					var ptypenode8 = nodearraylist7
					assert ptypenode8 isa nullable AType
					var pannotationsnode9 = nodearraylist8
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						tkwtypenode6,
						pqclassidnode7,
						ptypenode8,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18885,2--18924,4

nitc $ ReduceAction360 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist3
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist4
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist5
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18928,2--18968,4

nitc $ ReduceAction361 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:18972,2--19016,4

nitc $ ReduceAction362 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19020,2--19064,4

nitc $ ReduceAction363 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19068,2--19112,4

nitc $ ReduceAction364 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19116,2--19160,4

nitc $ ReduceAction365 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist5
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist6
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19164,2--19207,4

nitc $ ReduceAction366 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19211,2--19258,4

nitc $ ReduceAction367 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19262,2--19309,4

nitc $ ReduceAction368 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19313,2--19360,4

nitc $ ReduceAction369 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19364,2--19411,4

nitc $ ReduceAction370 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist5
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist6
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19415,2--19458,4

nitc $ ReduceAction371 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19462,2--19509,4

nitc $ ReduceAction372 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19513,2--19560,4

nitc $ ReduceAction373 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19564,2--19611,4

nitc $ ReduceAction374 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19615,2--19662,4

nitc $ ReduceAction375 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19666,2--19712,4

nitc $ ReduceAction376 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19716,2--19766,4

nitc $ ReduceAction377 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19770,2--19820,4

nitc $ ReduceAction378 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19824,2--19874,4

nitc $ ReduceAction379 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						null,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19878,2--19928,4

nitc $ ReduceAction380 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist3
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist4
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist5
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist6
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19932,2--19975,4

nitc $ ReduceAction381 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:19979,2--20026,4

nitc $ ReduceAction382 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20030,2--20077,4

nitc $ ReduceAction383 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20081,2--20128,4

nitc $ ReduceAction384 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20132,2--20179,4

nitc $ ReduceAction385 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20183,2--20229,4

nitc $ ReduceAction386 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20233,2--20283,4

nitc $ ReduceAction387 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20287,2--20337,4

nitc $ ReduceAction388 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20341,2--20391,4

nitc $ ReduceAction389 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						null,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20395,2--20445,4

nitc $ ReduceAction390 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist2
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist3
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist4
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist5
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist6
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist7
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20449,2--20495,4

nitc $ ReduceAction391 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20499,2--20549,4

nitc $ ReduceAction392 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20553,2--20603,4

nitc $ ReduceAction393 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20607,2--20657,4

nitc $ ReduceAction394 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist4
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist5
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist6
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist7
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist8
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist9
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						null,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20661,2--20711,4

nitc $ ReduceAction395 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var tkwnewnode9 = nodearraylist3
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist4
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist5
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist6
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist7
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist8
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20715,2--20764,4

nitc $ ReduceAction396 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist9
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist10
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20768,2--20821,4

nitc $ ReduceAction397 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist9
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist10
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20825,2--20878,4

nitc $ ReduceAction398 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist9
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist10
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20882,2--20935,4

nitc $ ReduceAction399 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var tkwnewnode9 = nodearraylist5
					assert tkwnewnode9 isa nullable TKwnew
					var pmethidnode10 = nodearraylist6
					assert pmethidnode10 isa nullable AMethid
					var psignaturenode11 = nodearraylist7
					assert psignaturenode11 isa nullable ASignature
					var pannotationsnode12 = nodearraylist8
					assert pannotationsnode12 isa nullable AAnnotations
					var pexterncallsnode13 = nodearraylist9
					assert pexterncallsnode13 isa nullable AExternCalls
					var pexterncodeblocknode14 = nodearraylist10
					assert pexterncodeblocknode14 isa nullable AExternCodeBlock
					var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						null,
						null,
						null,
						tkwnewnode9,
						pmethidnode10,
						psignaturenode11,
						pannotationsnode12,
						pexterncallsnode13,
						pexterncodeblocknode14,
						null,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20939,2--20992,4

nitc $ ReduceAction400 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var ppropdefnode1 = nodearraylist1
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:20996,2--21003,4

nitc $ ReduceAction402 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode6 = new Array[Object]
					var tkwisnode2 = nodearraylist1
					assert tkwisnode2 isa nullable TKwis
					var listnode5 = nodearraylist2
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
						tkwisnode2,
						null,
						null,
						listnode6,
						null,
						null
					)
					node_list = pannotationsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21007,2--21028,4

nitc $ ReduceAction403 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode6 = new Array[Object]
					var tkwisnode2 = nodearraylist1
					assert tkwisnode2 isa nullable TKwis
					var listnode5 = nodearraylist3
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tkwendnode8 = nodearraylist4
					assert tkwendnode8 isa nullable TKwend
					var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
						tkwisnode2,
						null,
						null,
						listnode6,
						null,
						tkwendnode8
					)
					node_list = pannotationsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21032,2--21057,4

nitc $ ReduceAction406 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode6 = new Array[Object]
					var tkwisnode2 = nodearraylist1
					assert tkwisnode2 isa nullable TKwis
					var listnode5 = nodearraylist3
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
						tkwisnode2,
						null,
						null,
						listnode6,
						null,
						null
					)
					node_list = pannotationsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21061,2--21083,4

nitc $ ReduceAction408 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					listnode2 = concat(listnode2, listnode1)
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21087,2--21097,4

nitc $ ReduceAction411 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tplusnode2 = nodearraylist1
					assert tplusnode2 isa nullable TPlus
					var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
						tplusnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21101,2--21112,4

nitc $ ReduceAction412 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tminusnode2 = nodearraylist1
					assert tminusnode2 isa nullable TMinus
					var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
						tminusnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21116,2--21127,4

nitc $ ReduceAction413 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tstarnode2 = nodearraylist1
					assert tstarnode2 isa nullable TStar
					var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
						tstarnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21131,2--21142,4

nitc $ ReduceAction414 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tstarstarnode2 = nodearraylist1
					assert tstarstarnode2 isa nullable TStarstar
					var pmethidnode1: nullable AStarstarMethid = new AStarstarMethid.init_astarstarmethid(
						tstarstarnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21146,2--21157,4

nitc $ ReduceAction415 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tslashnode2 = nodearraylist1
					assert tslashnode2 isa nullable TSlash
					var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
						tslashnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21161,2--21172,4

nitc $ ReduceAction416 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tpercentnode2 = nodearraylist1
					assert tpercentnode2 isa nullable TPercent
					var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
						tpercentnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21176,2--21187,4

nitc $ ReduceAction417 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tpipenode2 = nodearraylist1
					assert tpipenode2 isa nullable TPipe
					var pmethidnode1: nullable APipeMethid = new APipeMethid.init_apipemethid(
						tpipenode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21191,2--21202,4

nitc $ ReduceAction418 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tcaretnode2 = nodearraylist1
					assert tcaretnode2 isa nullable TCaret
					var pmethidnode1: nullable ACaretMethid = new ACaretMethid.init_acaretmethid(
						tcaretnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21206,2--21217,4

nitc $ ReduceAction419 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pmethidnode1: nullable AAmpMethid = new AAmpMethid.init_aampmethid(
						tampnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21221,2--21232,4

nitc $ ReduceAction420 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var ttildenode2 = nodearraylist1
					assert ttildenode2 isa nullable TTilde
					var pmethidnode1: nullable ATildeMethid = new ATildeMethid.init_atildemethid(
						ttildenode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21236,2--21247,4

nitc $ ReduceAction421 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var teqnode2 = nodearraylist1
					assert teqnode2 isa nullable TEq
					var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
						teqnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21251,2--21262,4

nitc $ ReduceAction422 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tnenode2 = nodearraylist1
					assert tnenode2 isa nullable TNe
					var pmethidnode1: nullable ANeMethid = new ANeMethid.init_anemethid(
						tnenode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21266,2--21277,4

nitc $ ReduceAction423 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tlenode2 = nodearraylist1
					assert tlenode2 isa nullable TLe
					var pmethidnode1: nullable ALeMethid = new ALeMethid.init_alemethid(
						tlenode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21281,2--21292,4

nitc $ ReduceAction424 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tgenode2 = nodearraylist1
					assert tgenode2 isa nullable TGe
					var pmethidnode1: nullable AGeMethid = new AGeMethid.init_agemethid(
						tgenode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21296,2--21307,4

nitc $ ReduceAction425 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tltnode2 = nodearraylist1
					assert tltnode2 isa nullable TLt
					var pmethidnode1: nullable ALtMethid = new ALtMethid.init_altmethid(
						tltnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21311,2--21322,4

nitc $ ReduceAction426 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tgtnode2 = nodearraylist1
					assert tgtnode2 isa nullable TGt
					var pmethidnode1: nullable AGtMethid = new AGtMethid.init_agtmethid(
						tgtnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21326,2--21337,4

nitc $ ReduceAction427 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tllnode2 = nodearraylist1
					assert tllnode2 isa nullable TLl
					var pmethidnode1: nullable ALlMethid = new ALlMethid.init_allmethid(
						tllnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21341,2--21352,4

nitc $ ReduceAction428 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tggnode2 = nodearraylist1
					assert tggnode2 isa nullable TGg
					var pmethidnode1: nullable AGgMethid = new AGgMethid.init_aggmethid(
						tggnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21356,2--21367,4

nitc $ ReduceAction429 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tobranode2 = nodearraylist1
					assert tobranode2 isa nullable TObra
					var tcbranode3 = nodearraylist2
					assert tcbranode3 isa nullable TCbra
					var pmethidnode1: nullable ABraMethid = new ABraMethid.init_abramethid(
						tobranode2,
						tcbranode3
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21371,2--21386,4

nitc $ ReduceAction430 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tstarshipnode2 = nodearraylist1
					assert tstarshipnode2 isa nullable TStarship
					var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
						tstarshipnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21390,2--21401,4

nitc $ ReduceAction431 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var tassignnode3 = nodearraylist2
					assert tassignnode3 isa nullable TAssign
					var pmethidnode1: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
						tidnode2,
						tassignnode3
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21405,2--21420,4

nitc $ ReduceAction432 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tobranode2 = nodearraylist1
					assert tobranode2 isa nullable TObra
					var tcbranode3 = nodearraylist2
					assert tcbranode3 isa nullable TCbra
					var tassignnode4 = nodearraylist3
					assert tassignnode4 isa nullable TAssign
					var pmethidnode1: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
						tobranode2,
						tcbranode3,
						tassignnode4
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21424,2--21443,4

nitc $ ReduceAction433 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
						tidnode2
					)
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21447,2--21458,4

nitc $ ReduceAction434 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var toparnode2 = nodearraylist1
					assert toparnode2 isa nullable TOpar
					var listnode3 = nodearraylist3
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tcparnode5 = nodearraylist4
					assert tcparnode5 isa nullable TCpar
					var ptypenode6 = nodearraylist5
					assert ptypenode6 isa nullable AType
					var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
						toparnode2,
						listnode4,
						tcparnode5,
						ptypenode6
					)
					node_list = psignaturenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21462,2--21489,4

nitc $ ReduceAction435 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var toparnode2 = nodearraylist1
					assert toparnode2 isa nullable TOpar
					var listnode3 = nodearraylist3
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tcparnode5 = nodearraylist4
					assert tcparnode5 isa nullable TCpar
					var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
						toparnode2,
						listnode4,
						tcparnode5,
						null
					)
					node_list = psignaturenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21493,2--21517,4

nitc $ ReduceAction436 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var ptypenode5 = nodearraylist1
					assert ptypenode5 isa nullable AType
					var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode3,
						null,
						ptypenode5
					)
					node_list = psignaturenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21521,2--21537,4

nitc $ ReduceAction437 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
						null,
						listnode3,
						null,
						null
					)
					node_list = psignaturenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21541,2--21554,4

nitc $ ReduceAction438 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pparamnode1 = nodearraylist1
					if pparamnode1 != null then
						listnode2.add(pparamnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21558,2--21570,4

nitc $ ReduceAction439 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pparamnode1 = nodearraylist1
					var listnode2 = nodearraylist2
					assert listnode2 isa Array[Object]
					if pparamnode1 != null then
						listnode3.add(pparamnode1)
					end
					listnode3 = concat(listnode3, listnode2)
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21574,2--21590,4

nitc $ ReduceAction441 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pparamnode1 = nodearraylist3
					node_list = pparamnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21594,2--21603,4

nitc $ ReduceAction442 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var pannotationsnode5 = nodearraylist2
					assert pannotationsnode5 isa nullable AAnnotations
					var pparamnode1: nullable AParam = new AParam.init_aparam(
						tidnode2,
						null,
						null,
						pannotationsnode5
					)
					node_list = pparamnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21607,2--21624,4

nitc $ ReduceAction443 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var ptypenode3 = nodearraylist2
					assert ptypenode3 isa nullable AType
					var pparamnode1: nullable AParam = new AParam.init_aparam(
						tidnode2,
						ptypenode3,
						null,
						null
					)
					node_list = pparamnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21628,2--21645,4

nitc $ ReduceAction444 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var pannotationsnode5 = nodearraylist2
					assert pannotationsnode5 isa nullable AAnnotations
					var pparamnode1: nullable AParam = new AParam.init_aparam(
						tidnode2,
						ptypenode3,
						null,
						pannotationsnode5
					)
					node_list = pparamnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21649,2--21669,4

nitc $ ReduceAction445 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var ptypenode3 = nodearraylist2
					assert ptypenode3 isa nullable AType
					var tdotdotdotnode4 = nodearraylist3
					assert tdotdotdotnode4 isa nullable TDotdotdot
					var pparamnode1: nullable AParam = new AParam.init_aparam(
						tidnode2,
						ptypenode3,
						tdotdotdotnode4,
						null
					)
					node_list = pparamnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21673,2--21693,4

nitc $ ReduceAction446 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var tdotdotdotnode4 = nodearraylist4
					assert tdotdotdotnode4 isa nullable TDotdotdot
					var pannotationsnode5 = nodearraylist2
					assert pannotationsnode5 isa nullable AAnnotations
					var pparamnode1: nullable AParam = new AParam.init_aparam(
						tidnode2,
						ptypenode3,
						tdotdotdotnode4,
						pannotationsnode5
					)
					node_list = pparamnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21697,2--21720,4

nitc $ ReduceAction447 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var tkwimportnode2 = nodearraylist1
					assert tkwimportnode2 isa nullable TKwimport
					var pexterncallnode3 = nodearraylist3
					assert pexterncallnode3 isa nullable AExternCall
					if pexterncallnode3 != null then
						listnode4.add(pexterncallnode3)
					end
					var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
						tkwimportnode2,
						listnode4
					)
					node_list = pexterncallsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21724,2--21744,4

nitc $ ReduceAction448 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode5 = new Array[Object]
					var tkwimportnode2 = nodearraylist1
					assert tkwimportnode2 isa nullable TKwimport
					var pexterncallnode3 = nodearraylist3
					assert pexterncallnode3 isa nullable AExternCall
					var listnode4 = nodearraylist4
					assert listnode4 isa Array[Object]
					if pexterncallnode3 != null then
						listnode5.add(pexterncallnode3)
					end
					listnode5 = concat(listnode5, listnode4)
					var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
						tkwimportnode2,
						listnode5
					)
					node_list = pexterncallsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21748,2--21772,4

nitc $ ReduceAction450 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexterncallnode1 = nodearraylist3
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21776,2--21785,4

nitc $ ReduceAction451 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pexterncallnode1 = nodearraylist1
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21789,2--21796,4

nitc $ ReduceAction453 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwsupernode2 = nodearraylist1
					assert tkwsupernode2 isa nullable TKwsuper
					var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
						tkwsupernode2
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21800,2--21811,4

nitc $ ReduceAction454 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pmethidnode2 = nodearraylist1
					assert pmethidnode2 isa nullable AMethid
					var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
						pmethidnode2
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21815,2--21826,4

nitc $ ReduceAction455 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var tdotnode3 = nodearraylist2
					assert tdotnode3 isa nullable TDot
					var pmethidnode4 = nodearraylist3
					assert pmethidnode4 isa nullable AMethid
					var pexterncallnode1: nullable AFullPropExternCall = new AFullPropExternCall.init_afullpropexterncall(
						ptypenode2,
						tdotnode3,
						pmethidnode4
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21830,2--21849,4

nitc $ ReduceAction456 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
						ptypenode2
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21853,2--21864,4

nitc $ ReduceAction457 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var tdotnode3 = nodearraylist2
					assert tdotnode3 isa nullable TDot
					var tkwasnode4 = nodearraylist3
					assert tkwasnode4 isa nullable TKwas
					var ptypenode5 = nodearraylist7
					assert ptypenode5 isa nullable AType
					var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
						ptypenode2,
						tdotnode3,
						tkwasnode4,
						ptypenode5
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21868,2--21896,4

nitc $ ReduceAction458 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var tdotnode3 = nodearraylist2
					assert tdotnode3 isa nullable TDot
					var tkwasnode4 = nodearraylist3
					assert tkwasnode4 isa nullable TKwas
					var ptypenode5 = nodearraylist5
					assert ptypenode5 isa nullable AType
					var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
						ptypenode2,
						tdotnode3,
						tkwasnode4,
						ptypenode5
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21900,2--21924,4

nitc $ ReduceAction459 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var tkwasnode3 = nodearraylist3
					assert tkwasnode3 isa nullable TKwas
					var tkwnullablenode4 = nodearraylist7
					assert tkwnullablenode4 isa nullable TKwnullable
					var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
						ptypenode2,
						tkwasnode3,
						tkwnullablenode4
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21928,2--21953,4

nitc $ ReduceAction460 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var tkwasnode3 = nodearraylist3
					assert tkwasnode3 isa nullable TKwas
					var tkwnullablenode4 = nodearraylist5
					assert tkwnullablenode4 isa nullable TKwnullable
					var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
						ptypenode2,
						tkwasnode3,
						tkwnullablenode4
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21957,2--21978,4

nitc $ ReduceAction461 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var tkwasnode3 = nodearraylist3
					assert tkwasnode3 isa nullable TKwas
					var tkwnotnode4 = nodearraylist7
					assert tkwnotnode4 isa nullable TKwnot
					var tkwnullablenode5 = nodearraylist9
					assert tkwnullablenode5 isa nullable TKwnullable
					var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
						ptypenode2,
						tkwasnode3,
						tkwnotnode4,
						tkwnullablenode5
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:21982,2--22012,4

nitc $ ReduceAction462 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var tkwasnode3 = nodearraylist3
					assert tkwasnode3 isa nullable TKwas
					var tkwnotnode4 = nodearraylist5
					assert tkwnotnode4 isa nullable TKwnot
					var tkwnullablenode5 = nodearraylist7
					assert tkwnullablenode5 isa nullable TKwnullable
					var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
						ptypenode2,
						tkwasnode3,
						tkwnotnode4,
						tkwnullablenode5
					)
					node_list = pexterncallnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22016,2--22042,4

nitc $ ReduceAction464 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tstringnode1 = nodearraylist1
					node_list = tstringnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22046,2--22053,4

nitc $ ReduceAction465 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwinnode2 = nodearraylist1
					assert tkwinnode2 isa nullable TKwin
					var tstringnode3 = nodearraylist3
					assert tstringnode3 isa nullable TString
					var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
						tkwinnode2,
						tstringnode3
					)
					node_list = pinlanguagenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22057,2--22074,4

nitc $ ReduceAction466 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var texterncodesegmentnode3 = nodearraylist1
					assert texterncodesegmentnode3 isa nullable TExternCodeSegment
					var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
						null,
						texterncodesegmentnode3
					)
					node_list = pexterncodeblocknode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22078,2--22090,4

nitc $ ReduceAction467 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pinlanguagenode2 = nodearraylist1
					assert pinlanguagenode2 isa nullable AInLanguage
					var texterncodesegmentnode3 = nodearraylist2
					assert texterncodesegmentnode3 isa nullable TExternCodeSegment
					var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
						pinlanguagenode2,
						texterncodesegmentnode3
					)
					node_list = pexterncodeblocknode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22094,2--22109,4

nitc $ ReduceAction468 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pexterncodeblocknode1 = nodearraylist1
					node_list = pexterncodeblocknode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22113,2--22120,4

nitc $ ReduceAction470 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexterncodeblocknode1 = nodearraylist2
					node_list = pexterncodeblocknode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22124,2--22132,4

nitc $ ReduceAction471 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var ptypenode1 = nodearraylist1
					node_list = ptypenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22136,2--22143,4

nitc $ ReduceAction472 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode1 = nodearraylist1
					node_list = ptypenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22147,2--22156,4

nitc $ ReduceAction474 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode5 = new Array[Object]
					var pqclassidnode3 = nodearraylist1
					assert pqclassidnode3 isa nullable AQclassid
					var pannotationsnode7 = nodearraylist2
					assert pannotationsnode7 isa nullable AAnnotations
					var ptypenode1: nullable AType = new AType.init_atype(
						null,
						pqclassidnode3,
						null,
						listnode5,
						null,
						pannotationsnode7
					)
					node_list = ptypenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22160,2--22180,4

nitc $ ReduceAction475 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode5 = new Array[Object]
					var tkwnullablenode2 = nodearraylist1
					assert tkwnullablenode2 isa nullable TKwnullable
					var pqclassidnode3 = nodearraylist2
					assert pqclassidnode3 isa nullable AQclassid
					var pannotationsnode7 = nodearraylist3
					assert pannotationsnode7 isa nullable AAnnotations
					var ptypenode1: nullable AType = new AType.init_atype(
						tkwnullablenode2,
						pqclassidnode3,
						null,
						listnode5,
						null,
						pannotationsnode7
					)
					node_list = ptypenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22184,2--22207,4

nitc $ ReduceAction476 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode6 = new Array[Object]
					var pqclassidnode3 = nodearraylist1
					assert pqclassidnode3 isa nullable AQclassid
					var tobranode4 = nodearraylist2
					assert tobranode4 isa nullable TObra
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tcbranode7 = nodearraylist6
					assert tcbranode7 isa nullable TCbra
					var pannotationsnode8 = nodearraylist7
					assert pannotationsnode8 isa nullable AAnnotations
					var ptypenode1: nullable AType = new AType.init_atype(
						null,
						pqclassidnode3,
						tobranode4,
						listnode6,
						tcbranode7,
						pannotationsnode8
					)
					node_list = ptypenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22211,2--22243,4

nitc $ ReduceAction477 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode6 = new Array[Object]
					var tkwnullablenode2 = nodearraylist1
					assert tkwnullablenode2 isa nullable TKwnullable
					var pqclassidnode3 = nodearraylist2
					assert pqclassidnode3 isa nullable AQclassid
					var tobranode4 = nodearraylist3
					assert tobranode4 isa nullable TObra
					var listnode5 = nodearraylist5
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tcbranode7 = nodearraylist7
					assert tcbranode7 isa nullable TCbra
					var pannotationsnode8 = nodearraylist8
					assert pannotationsnode8 isa nullable AAnnotations
					var ptypenode1: nullable AType = new AType.init_atype(
						tkwnullablenode2,
						pqclassidnode3,
						tobranode4,
						listnode6,
						tcbranode7,
						pannotationsnode8
					)
					node_list = ptypenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22247,2--22282,4

nitc $ ReduceAction478 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var ptypenode1 = nodearraylist1
					if ptypenode1 != null then
						listnode2.add(ptypenode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22286,2--22297,4

nitc $ ReduceAction479 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var ptypenode1 = nodearraylist1
					var listnode2 = nodearraylist2
					assert listnode2 isa Array[Object]
					if ptypenode1 != null then
						listnode3.add(ptypenode1)
					end
					listnode3 = concat(listnode3, listnode2)
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22301,2--22316,4

nitc $ ReduceAction480 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ptypenode1 = nodearraylist3
					node_list = ptypenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22320,2--22329,4

nitc $ ReduceAction484 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode1 = nodearraylist2
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22333,2--22341,4

nitc $ ReduceAction485 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var tkwendnode3 = nodearraylist2
					assert tkwendnode3 isa nullable TKwend
					var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode2,
						tkwendnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22345,2--22359,4

nitc $ ReduceAction486 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var tkwendnode3 = nodearraylist1
					assert tkwendnode3 isa nullable TKwend
					var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode2,
						tkwendnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22363,2--22376,4

nitc $ ReduceAction487 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pexprnode1 = nodearraylist1
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22380,2--22387,4

nitc $ ReduceAction488 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					if pexprnode2 != null then
						listnode3.add(pexprnode2)
					end
					var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode3,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22391,2--22408,4

nitc $ ReduceAction489 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode3 = nodearraylist2
					assert listnode3 isa Array[Object]
					if pexprnode2 != null then
						listnode4.add(pexprnode2)
					end
					listnode4 = concat(listnode4, listnode3)
					var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode4,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22412,2--22433,4

nitc $ ReduceAction490 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					if pexprnode2 != null then
						listnode3.add(pexprnode2)
					end
					var tkwendnode4 = nodearraylist3
					assert tkwendnode4 isa nullable TKwend
					var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode3,
						tkwendnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22437,2--22457,4

nitc $ ReduceAction491 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode3 = nodearraylist2
					assert listnode3 isa Array[Object]
					if pexprnode2 != null then
						listnode4.add(pexprnode2)
					end
					listnode4 = concat(listnode4, listnode3)
					var tkwendnode5 = nodearraylist4
					assert tkwendnode5 isa nullable TKwend
					var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode4,
						tkwendnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22461,2--22485,4

nitc $ ReduceAction495 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwreturnnode2 = nodearraylist1
					assert tkwreturnnode2 isa nullable TKwreturn
					var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
						tkwreturnnode2,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22489,2--22501,4

nitc $ ReduceAction496 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwreturnnode2 = nodearraylist1
					assert tkwreturnnode2 isa nullable TKwreturn
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
						tkwreturnnode2,
						pexprnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22505,2--22520,4

nitc $ ReduceAction497 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwyieldnode2 = nodearraylist1
					assert tkwyieldnode2 isa nullable TKwyield
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable AYieldExpr = new AYieldExpr.init_ayieldexpr(
						tkwyieldnode2,
						pexprnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22524,2--22539,4

nitc $ ReduceAction498 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwbreaknode2 = nodearraylist1
					assert tkwbreaknode2 isa nullable TKwbreak
					var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
						tkwbreaknode2,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22543,2--22555,4

nitc $ ReduceAction499 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwbreaknode2 = nodearraylist1
					assert tkwbreaknode2 isa nullable TKwbreak
					var plabelnode3 = nodearraylist2
					assert plabelnode3 isa nullable ALabel
					var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
						tkwbreaknode2,
						plabelnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22559,2--22574,4

nitc $ ReduceAction500 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwabortnode2 = nodearraylist1
					assert tkwabortnode2 isa nullable TKwabort
					var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
						tkwabortnode2
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22578,2--22589,4

nitc $ ReduceAction501 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwcontinuenode2 = nodearraylist1
					assert tkwcontinuenode2 isa nullable TKwcontinue
					var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
						tkwcontinuenode2,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22593,2--22605,4

nitc $ ReduceAction502 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwcontinuenode2 = nodearraylist1
					assert tkwcontinuenode2 isa nullable TKwcontinue
					var plabelnode3 = nodearraylist2
					assert plabelnode3 isa nullable ALabel
					var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
						tkwcontinuenode2,
						plabelnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22609,2--22624,4

nitc $ ReduceAction510 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tidnode5 = nodearraylist4
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var pexprsnode6 = nodearraylist5
					assert pexprsnode6 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22628,2--22653,4

nitc $ ReduceAction511 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist4
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var pexprsnode8 = nodearraylist6
					assert pexprsnode8 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22657,2--22690,4

nitc $ ReduceAction512 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist5
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist7
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22694,2--22731,4

nitc $ ReduceAction513 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist5
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist6
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22735,2--22769,4

nitc $ ReduceAction514 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						null,
						tidnode7
					)
					var pexprsnode8 = nodearraylist6
					assert pexprsnode8 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22773,2--22805,4

nitc $ ReduceAction515 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode7 = new Array[Object]
					var tclassidnode8 = nodearraylist5
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist6
					assert tidnode9 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode9
					)
					var pexprsnode10 = nodearraylist7
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22809,2--22849,4

nitc $ ReduceAction516 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var tclassidnode9 = nodearraylist6
					assert tclassidnode9 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						tclassidnode9
					)
					var tidnode10 = nodearraylist7
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var pexprsnode11 = nodearraylist8
					assert pexprsnode11 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22853,2--22897,4

nitc $ ReduceAction517 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						null
					)
					var tidnode10 = nodearraylist6
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var pexprsnode11 = nodearraylist7
					assert pexprsnode11 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22901,2--22942,4

nitc $ ReduceAction518 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tidnode5 = nodearraylist1
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var pexprsnode6 = nodearraylist2
					assert pexprsnode6 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22946,2--22967,4

nitc $ ReduceAction519 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist1
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist2
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var pexprsnode8 = nodearraylist3
					assert pexprsnode8 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:22971,2--23000,4

nitc $ ReduceAction520 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist2
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist4
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23004,2--23037,4

nitc $ ReduceAction521 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist2
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist3
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23041,2--23071,4

nitc $ ReduceAction522 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pqualifiednode2 = nodearraylist1
					assert pqualifiednode2 isa nullable AQualified
					var tkwsupernode3 = nodearraylist2
					assert tkwsupernode3 isa nullable TKwsuper
					var pexprsnode4 = nodearraylist3
					assert pexprsnode4 isa nullable AExprs
					var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
						pqualifiednode2,
						tkwsupernode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23075,2--23094,4

nitc $ ReduceAction523 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwinitnode3 = nodearraylist4
					assert tkwinitnode3 isa nullable TKwinit
					var pexprsnode4 = nodearraylist5
					assert pexprsnode4 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23098,2--23119,4

nitc $ ReduceAction524 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tkwinitnode5 = nodearraylist5
					assert tkwinitnode5 isa nullable TKwinit
					var pexprsnode6 = nodearraylist6
					assert pexprsnode6 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode5,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23123,2--23151,4

nitc $ ReduceAction525 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tkwinitnode3 = nodearraylist1
					assert tkwinitnode3 isa nullable TKwinit
					var pexprsnode4 = nodearraylist2
					assert pexprsnode4 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23155,2--23172,4

nitc $ ReduceAction526 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwinitnode3 = nodearraylist5
					assert tkwinitnode3 isa nullable TKwinit
					var pexprsnode4 = nodearraylist6
					assert pexprsnode4 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23176,2--23198,4

nitc $ ReduceAction527 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwinitnode3 = nodearraylist6
					assert tkwinitnode3 isa nullable TKwinit
					var pexprsnode4 = nodearraylist7
					assert pexprsnode4 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23202,2--23225,4

nitc $ ReduceAction529 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tkwinitnode5 = nodearraylist6
					assert tkwinitnode5 isa nullable TKwinit
					var pexprsnode6 = nodearraylist7
					assert pexprsnode6 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode5,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23229,2--23258,4

nitc $ ReduceAction530 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tkwinitnode5 = nodearraylist7
					assert tkwinitnode5 isa nullable TKwinit
					var pexprsnode6 = nodearraylist8
					assert pexprsnode6 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode5,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23262,2--23292,4

nitc $ ReduceAction532 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tkwinitnode3 = nodearraylist2
					assert tkwinitnode3 isa nullable TKwinit
					var pexprsnode4 = nodearraylist3
					assert pexprsnode4 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23296,2--23314,4

nitc $ ReduceAction533 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tkwinitnode3 = nodearraylist3
					assert tkwinitnode3 isa nullable TKwinit
					var pexprsnode4 = nodearraylist4
					assert pexprsnode4 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23318,2--23337,4

nitc $ ReduceAction535 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwdebugnode2 = nodearraylist1
					assert tkwdebugnode2 isa nullable TKwdebug
					var tkwtypenode3 = nodearraylist2
					assert tkwtypenode3 isa nullable TKwtype
					var pexprnode4 = nodearraylist5
					assert pexprnode4 isa nullable AExpr
					var ptypenode5 = nodearraylist3
					assert ptypenode5 isa nullable AType
					var pexprnode1: nullable ADebugTypeExpr = new ADebugTypeExpr.init_adebugtypeexpr(
						tkwdebugnode2,
						tkwtypenode3,
						pexprnode4,
						ptypenode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23341,2--23365,4

nitc $ ReduceAction536 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwlabelnode2 = nodearraylist1
					assert tkwlabelnode2 isa nullable TKwlabel
					var plabelnode1: nullable ALabel = new ALabel.init_alabel(
						tkwlabelnode2,
						null
					)
					node_list = plabelnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23369,2--23381,4

nitc $ ReduceAction537 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwlabelnode2 = nodearraylist1
					assert tkwlabelnode2 isa nullable TKwlabel
					var tidnode3 = nodearraylist2
					assert tidnode3 isa nullable TId
					var plabelnode1: nullable ALabel = new ALabel.init_alabel(
						tkwlabelnode2,
						tidnode3
					)
					node_list = plabelnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23385,2--23400,4

nitc $ ReduceAction538 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwvarnode2 = nodearraylist1
					assert tkwvarnode2 isa nullable TKwvar
					var tidnode3 = nodearraylist2
					assert tidnode3 isa nullable TId
					var ptypenode4 = nodearraylist3
					assert ptypenode4 isa nullable AType
					var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
						tkwvarnode2,
						tidnode3,
						ptypenode4,
						null,
						null,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23404,2--23426,4

nitc $ ReduceAction539 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwvarnode2 = nodearraylist1
					assert tkwvarnode2 isa nullable TKwvar
					var tidnode3 = nodearraylist2
					assert tidnode3 isa nullable TId
					var ptypenode4 = nodearraylist4
					assert ptypenode4 isa nullable AType
					var pannotationsnode7 = nodearraylist3
					assert pannotationsnode7 isa nullable AAnnotations
					var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
						tkwvarnode2,
						tidnode3,
						ptypenode4,
						null,
						null,
						pannotationsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23430,2--23455,4

nitc $ ReduceAction540 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwvarnode2 = nodearraylist1
					assert tkwvarnode2 isa nullable TKwvar
					var tidnode3 = nodearraylist2
					assert tidnode3 isa nullable TId
					var ptypenode4 = nodearraylist3
					assert ptypenode4 isa nullable AType
					var tassignnode5 = nodearraylist4
					assert tassignnode5 isa nullable TAssign
					var pexprnode6 = nodearraylist6
					assert pexprnode6 isa nullable AExpr
					var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
						tkwvarnode2,
						tidnode3,
						ptypenode4,
						tassignnode5,
						pexprnode6,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23459,2--23488,4

nitc $ ReduceAction541 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwvarnode2 = nodearraylist1
					assert tkwvarnode2 isa nullable TKwvar
					var tidnode3 = nodearraylist2
					assert tidnode3 isa nullable TId
					var ptypenode4 = nodearraylist4
					assert ptypenode4 isa nullable AType
					var tassignnode5 = nodearraylist5
					assert tassignnode5 isa nullable TAssign
					var pexprnode6 = nodearraylist7
					assert pexprnode6 isa nullable AExpr
					var pannotationsnode7 = nodearraylist3
					assert pannotationsnode7 isa nullable AAnnotations
					var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
						tkwvarnode2,
						tidnode3,
						ptypenode4,
						tassignnode5,
						pexprnode6,
						pannotationsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23492,2--23524,4

nitc $ ReduceAction542 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tattridnode3 = nodearraylist5
					assert tattridnode3 isa nullable TAttrid
					var tassignnode4 = nodearraylist6
					assert tassignnode4 isa nullable TAssign
					var pexprnode5 = nodearraylist7
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
						pexprnode2,
						tattridnode3,
						tassignnode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23528,2--23554,4

nitc $ ReduceAction543 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tattridnode5 = nodearraylist6
					assert tattridnode5 isa nullable TAttrid
					var tassignnode6 = nodearraylist7
					assert tassignnode6 isa nullable TAssign
					var pexprnode7 = nodearraylist8
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
						pexprnode2,
						tattridnode5,
						tassignnode6,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23558,2--23591,4

nitc $ ReduceAction544 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tattridnode3 = nodearraylist2
					assert tattridnode3 isa nullable TAttrid
					var tassignnode4 = nodearraylist3
					assert tassignnode4 isa nullable TAssign
					var pexprnode5 = nodearraylist4
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
						pexprnode2,
						tattridnode3,
						tassignnode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23595,2--23617,4

nitc $ ReduceAction545 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tidnode5 = nodearraylist4
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var pexprsnode6 = nodearraylist5
					assert pexprsnode6 isa nullable AExprs
					var tassignnode7 = nodearraylist6
					assert tassignnode7 isa nullable TAssign
					var pexprnode8 = nodearraylist7
					assert pexprnode8 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6,
						tassignnode7,
						pexprnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23621,2--23654,4

nitc $ ReduceAction546 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tidnode5 = nodearraylist4
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var listnode7 = new Array[Object]
					var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode7
					)
					var tassignnode8 = nodearraylist5
					assert tassignnode8 isa nullable TAssign
					var pexprnode9 = nodearraylist6
					assert pexprnode9 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6,
						tassignnode8,
						pexprnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23658,2--23692,4

nitc $ ReduceAction547 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist4
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var pexprsnode8 = nodearraylist6
					assert pexprsnode8 isa nullable AExprs
					var tassignnode9 = nodearraylist7
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist8
					assert pexprnode10 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8,
						tassignnode9,
						pexprnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23696,2--23737,4

nitc $ ReduceAction548 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist4
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var tassignnode10 = nodearraylist6
					assert tassignnode10 isa nullable TAssign
					var pexprnode11 = nodearraylist7
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8,
						tassignnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23741,2--23783,4

nitc $ ReduceAction549 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist5
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist7
					assert pexprsnode9 isa nullable AExprs
					var tassignnode10 = nodearraylist8
					assert tassignnode10 isa nullable TAssign
					var pexprnode11 = nodearraylist9
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						tassignnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23787,2--23832,4

nitc $ ReduceAction550 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist5
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var tassignnode11 = nodearraylist7
					assert tassignnode11 isa nullable TAssign
					var pexprnode12 = nodearraylist8
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						tassignnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23836,2--23882,4

nitc $ ReduceAction551 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist5
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist6
					assert pexprsnode9 isa nullable AExprs
					var tassignnode10 = nodearraylist7
					assert tassignnode10 isa nullable TAssign
					var pexprnode11 = nodearraylist8
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						tassignnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23886,2--23928,4

nitc $ ReduceAction552 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist5
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var tassignnode11 = nodearraylist6
					assert tassignnode11 isa nullable TAssign
					var pexprnode12 = nodearraylist7
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						tassignnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23932,2--23975,4

nitc $ ReduceAction553 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						null,
						tidnode7
					)
					var pexprsnode8 = nodearraylist6
					assert pexprsnode8 isa nullable AExprs
					var tassignnode9 = nodearraylist7
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist8
					assert pexprnode10 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode8,
						tassignnode9,
						pexprnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:23979,2--24019,4

nitc $ ReduceAction554 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						null,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var tassignnode10 = nodearraylist6
					assert tassignnode10 isa nullable TAssign
					var pexprnode11 = nodearraylist7
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode8,
						tassignnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24023,2--24064,4

nitc $ ReduceAction555 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode7 = new Array[Object]
					var tclassidnode8 = nodearraylist5
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist6
					assert tidnode9 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode9
					)
					var pexprsnode10 = nodearraylist7
					assert pexprsnode10 isa nullable AExprs
					var tassignnode11 = nodearraylist8
					assert tassignnode11 isa nullable TAssign
					var pexprnode12 = nodearraylist9
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode10,
						tassignnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24068,2--24116,4

nitc $ ReduceAction556 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode7 = new Array[Object]
					var tclassidnode8 = nodearraylist5
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist6
					assert tidnode9 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var tassignnode12 = nodearraylist7
					assert tassignnode12 isa nullable TAssign
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode10,
						tassignnode12,
						pexprnode13
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24120,2--24169,4

nitc $ ReduceAction557 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var tclassidnode9 = nodearraylist6
					assert tclassidnode9 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						tclassidnode9
					)
					var tidnode10 = nodearraylist7
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var pexprsnode11 = nodearraylist8
					assert pexprsnode11 isa nullable AExprs
					var tassignnode12 = nodearraylist9
					assert tassignnode12 isa nullable TAssign
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11,
						tassignnode12,
						pexprnode13
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24173,2--24225,4

nitc $ ReduceAction558 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var tclassidnode9 = nodearraylist6
					assert tclassidnode9 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						tclassidnode9
					)
					var tidnode10 = nodearraylist7
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var listnode12 = new Array[Object]
					var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode12
					)
					var tassignnode13 = nodearraylist8
					assert tassignnode13 isa nullable TAssign
					var pexprnode14 = nodearraylist9
					assert pexprnode14 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11,
						tassignnode13,
						pexprnode14
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24229,2--24282,4

nitc $ ReduceAction559 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						null
					)
					var tidnode10 = nodearraylist6
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var pexprsnode11 = nodearraylist7
					assert pexprsnode11 isa nullable AExprs
					var tassignnode12 = nodearraylist8
					assert tassignnode12 isa nullable TAssign
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11,
						tassignnode12,
						pexprnode13
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24286,2--24335,4

nitc $ ReduceAction560 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						null
					)
					var tidnode10 = nodearraylist6
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var listnode12 = new Array[Object]
					var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode12
					)
					var tassignnode13 = nodearraylist7
					assert tassignnode13 isa nullable TAssign
					var pexprnode14 = nodearraylist8
					assert pexprnode14 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11,
						tassignnode13,
						pexprnode14
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24339,2--24389,4

nitc $ ReduceAction561 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tidnode5 = nodearraylist1
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var pexprsnode6 = nodearraylist2
					assert pexprsnode6 isa nullable AExprs
					var tassignnode7 = nodearraylist3
					assert tassignnode7 isa nullable TAssign
					var pexprnode8 = nodearraylist4
					assert pexprnode8 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6,
						tassignnode7,
						pexprnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24393,2--24422,4

nitc $ ReduceAction562 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tidnode5 = nodearraylist1
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var listnode7 = new Array[Object]
					var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode7
					)
					var tassignnode8 = nodearraylist2
					assert tassignnode8 isa nullable TAssign
					var pexprnode9 = nodearraylist3
					assert pexprnode9 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6,
						tassignnode8,
						pexprnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24426,2--24456,4

nitc $ ReduceAction563 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist1
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist2
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var pexprsnode8 = nodearraylist3
					assert pexprsnode8 isa nullable AExprs
					var tassignnode9 = nodearraylist4
					assert tassignnode9 isa nullable TAssign
					var pexprnode10 = nodearraylist5
					assert pexprnode10 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8,
						tassignnode9,
						pexprnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24460,2--24497,4

nitc $ ReduceAction564 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist1
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist2
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var tassignnode10 = nodearraylist3
					assert tassignnode10 isa nullable TAssign
					var pexprnode11 = nodearraylist4
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8,
						tassignnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24501,2--24539,4

nitc $ ReduceAction565 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist2
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist4
					assert pexprsnode9 isa nullable AExprs
					var tassignnode10 = nodearraylist5
					assert tassignnode10 isa nullable TAssign
					var pexprnode11 = nodearraylist6
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						tassignnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24543,2--24584,4

nitc $ ReduceAction566 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist2
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var tassignnode11 = nodearraylist4
					assert tassignnode11 isa nullable TAssign
					var pexprnode12 = nodearraylist5
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						tassignnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24588,2--24630,4

nitc $ ReduceAction567 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist2
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist3
					assert pexprsnode9 isa nullable AExprs
					var tassignnode10 = nodearraylist4
					assert tassignnode10 isa nullable TAssign
					var pexprnode11 = nodearraylist5
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						tassignnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24634,2--24672,4

nitc $ ReduceAction568 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist2
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var tassignnode11 = nodearraylist3
					assert tassignnode11 isa nullable TAssign
					var pexprnode12 = nodearraylist4
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						tassignnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24676,2--24715,4

nitc $ ReduceAction569 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var pexprsnode3 = nodearraylist2
					assert pexprsnode3 isa nullable AExprs
					var tassignnode4 = nodearraylist3
					assert tassignnode4 isa nullable TAssign
					var pexprnode5 = nodearraylist4
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
						pexprnode2,
						pexprsnode3,
						tassignnode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24719,2--24742,4

nitc $ ReduceAction570 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tattridnode3 = nodearraylist5
					assert tattridnode3 isa nullable TAttrid
					var passignopnode4 = nodearraylist6
					assert passignopnode4 isa nullable AAssignOp
					var pexprnode5 = nodearraylist7
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
						pexprnode2,
						tattridnode3,
						passignopnode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24746,2--24772,4

nitc $ ReduceAction571 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tattridnode5 = nodearraylist6
					assert tattridnode5 isa nullable TAttrid
					var passignopnode6 = nodearraylist7
					assert passignopnode6 isa nullable AAssignOp
					var pexprnode7 = nodearraylist8
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
						pexprnode2,
						tattridnode5,
						passignopnode6,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24776,2--24809,4

nitc $ ReduceAction572 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tattridnode3 = nodearraylist2
					assert tattridnode3 isa nullable TAttrid
					var passignopnode4 = nodearraylist3
					assert passignopnode4 isa nullable AAssignOp
					var pexprnode5 = nodearraylist4
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
						pexprnode2,
						tattridnode3,
						passignopnode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24813,2--24835,4

nitc $ ReduceAction573 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tidnode5 = nodearraylist4
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var pexprsnode6 = nodearraylist5
					assert pexprsnode6 isa nullable AExprs
					var passignopnode7 = nodearraylist6
					assert passignopnode7 isa nullable AAssignOp
					var pexprnode8 = nodearraylist7
					assert pexprnode8 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6,
						passignopnode7,
						pexprnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24839,2--24872,4

nitc $ ReduceAction574 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tidnode5 = nodearraylist4
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var listnode7 = new Array[Object]
					var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode7
					)
					var passignopnode8 = nodearraylist5
					assert passignopnode8 isa nullable AAssignOp
					var pexprnode9 = nodearraylist6
					assert pexprnode9 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6,
						passignopnode8,
						pexprnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24876,2--24910,4

nitc $ ReduceAction575 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist4
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var pexprsnode8 = nodearraylist6
					assert pexprsnode8 isa nullable AExprs
					var passignopnode9 = nodearraylist7
					assert passignopnode9 isa nullable AAssignOp
					var pexprnode10 = nodearraylist8
					assert pexprnode10 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8,
						passignopnode9,
						pexprnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24914,2--24955,4

nitc $ ReduceAction576 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist4
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var passignopnode10 = nodearraylist6
					assert passignopnode10 isa nullable AAssignOp
					var pexprnode11 = nodearraylist7
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8,
						passignopnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:24959,2--25001,4

nitc $ ReduceAction577 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist5
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist7
					assert pexprsnode9 isa nullable AExprs
					var passignopnode10 = nodearraylist8
					assert passignopnode10 isa nullable AAssignOp
					var pexprnode11 = nodearraylist9
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						passignopnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25005,2--25050,4

nitc $ ReduceAction578 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist5
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var passignopnode11 = nodearraylist7
					assert passignopnode11 isa nullable AAssignOp
					var pexprnode12 = nodearraylist8
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						passignopnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25054,2--25100,4

nitc $ ReduceAction579 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist5
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist6
					assert pexprsnode9 isa nullable AExprs
					var passignopnode10 = nodearraylist7
					assert passignopnode10 isa nullable AAssignOp
					var pexprnode11 = nodearraylist8
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						passignopnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25104,2--25146,4

nitc $ ReduceAction580 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist5
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var passignopnode11 = nodearraylist6
					assert passignopnode11 isa nullable AAssignOp
					var pexprnode12 = nodearraylist7
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						passignopnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25150,2--25193,4

nitc $ ReduceAction581 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						null,
						tidnode7
					)
					var pexprsnode8 = nodearraylist6
					assert pexprsnode8 isa nullable AExprs
					var passignopnode9 = nodearraylist7
					assert passignopnode9 isa nullable AAssignOp
					var pexprnode10 = nodearraylist8
					assert pexprnode10 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode8,
						passignopnode9,
						pexprnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25197,2--25237,4

nitc $ ReduceAction582 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						null,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var passignopnode10 = nodearraylist6
					assert passignopnode10 isa nullable AAssignOp
					var pexprnode11 = nodearraylist7
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode8,
						passignopnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25241,2--25282,4

nitc $ ReduceAction583 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode7 = new Array[Object]
					var tclassidnode8 = nodearraylist5
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist6
					assert tidnode9 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode9
					)
					var pexprsnode10 = nodearraylist7
					assert pexprsnode10 isa nullable AExprs
					var passignopnode11 = nodearraylist8
					assert passignopnode11 isa nullable AAssignOp
					var pexprnode12 = nodearraylist9
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode10,
						passignopnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25286,2--25334,4

nitc $ ReduceAction584 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode7 = new Array[Object]
					var tclassidnode8 = nodearraylist5
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist6
					assert tidnode9 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var passignopnode12 = nodearraylist7
					assert passignopnode12 isa nullable AAssignOp
					var pexprnode13 = nodearraylist8
					assert pexprnode13 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode10,
						passignopnode12,
						pexprnode13
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25338,2--25387,4

nitc $ ReduceAction585 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var tclassidnode9 = nodearraylist6
					assert tclassidnode9 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						tclassidnode9
					)
					var tidnode10 = nodearraylist7
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var pexprsnode11 = nodearraylist8
					assert pexprsnode11 isa nullable AExprs
					var passignopnode12 = nodearraylist9
					assert passignopnode12 isa nullable AAssignOp
					var pexprnode13 = nodearraylist10
					assert pexprnode13 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11,
						passignopnode12,
						pexprnode13
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25391,2--25443,4

nitc $ ReduceAction586 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var tclassidnode9 = nodearraylist6
					assert tclassidnode9 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						tclassidnode9
					)
					var tidnode10 = nodearraylist7
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var listnode12 = new Array[Object]
					var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode12
					)
					var passignopnode13 = nodearraylist8
					assert passignopnode13 isa nullable AAssignOp
					var pexprnode14 = nodearraylist9
					assert pexprnode14 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11,
						passignopnode13,
						pexprnode14
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25447,2--25500,4

nitc $ ReduceAction587 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						null
					)
					var tidnode10 = nodearraylist6
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var pexprsnode11 = nodearraylist7
					assert pexprsnode11 isa nullable AExprs
					var passignopnode12 = nodearraylist8
					assert passignopnode12 isa nullable AAssignOp
					var pexprnode13 = nodearraylist9
					assert pexprnode13 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11,
						passignopnode12,
						pexprnode13
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25504,2--25553,4

nitc $ ReduceAction588 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						null
					)
					var tidnode10 = nodearraylist6
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var listnode12 = new Array[Object]
					var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode12
					)
					var passignopnode13 = nodearraylist7
					assert passignopnode13 isa nullable AAssignOp
					var pexprnode14 = nodearraylist8
					assert pexprnode14 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11,
						passignopnode13,
						pexprnode14
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25557,2--25607,4

nitc $ ReduceAction589 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tidnode5 = nodearraylist1
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var pexprsnode6 = nodearraylist2
					assert pexprsnode6 isa nullable AExprs
					var passignopnode7 = nodearraylist3
					assert passignopnode7 isa nullable AAssignOp
					var pexprnode8 = nodearraylist4
					assert pexprnode8 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6,
						passignopnode7,
						pexprnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25611,2--25640,4

nitc $ ReduceAction590 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tidnode5 = nodearraylist1
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var listnode7 = new Array[Object]
					var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode7
					)
					var passignopnode8 = nodearraylist2
					assert passignopnode8 isa nullable AAssignOp
					var pexprnode9 = nodearraylist3
					assert pexprnode9 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6,
						passignopnode8,
						pexprnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25644,2--25674,4

nitc $ ReduceAction591 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist1
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist2
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var pexprsnode8 = nodearraylist3
					assert pexprsnode8 isa nullable AExprs
					var passignopnode9 = nodearraylist4
					assert passignopnode9 isa nullable AAssignOp
					var pexprnode10 = nodearraylist5
					assert pexprnode10 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8,
						passignopnode9,
						pexprnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25678,2--25715,4

nitc $ ReduceAction592 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist1
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist2
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var passignopnode10 = nodearraylist3
					assert passignopnode10 isa nullable AAssignOp
					var pexprnode11 = nodearraylist4
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8,
						passignopnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25719,2--25757,4

nitc $ ReduceAction593 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist2
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist4
					assert pexprsnode9 isa nullable AExprs
					var passignopnode10 = nodearraylist5
					assert passignopnode10 isa nullable AAssignOp
					var pexprnode11 = nodearraylist6
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						passignopnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25761,2--25802,4

nitc $ ReduceAction594 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist2
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var passignopnode11 = nodearraylist4
					assert passignopnode11 isa nullable AAssignOp
					var pexprnode12 = nodearraylist5
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						passignopnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25806,2--25848,4

nitc $ ReduceAction595 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist2
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist3
					assert pexprsnode9 isa nullable AExprs
					var passignopnode10 = nodearraylist4
					assert passignopnode10 isa nullable AAssignOp
					var pexprnode11 = nodearraylist5
					assert pexprnode11 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						passignopnode10,
						pexprnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25852,2--25890,4

nitc $ ReduceAction596 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist2
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var passignopnode11 = nodearraylist3
					assert passignopnode11 isa nullable AAssignOp
					var pexprnode12 = nodearraylist4
					assert pexprnode12 isa nullable AExpr
					var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9,
						passignopnode11,
						pexprnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25894,2--25933,4

nitc $ ReduceAction597 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var pexprsnode3 = nodearraylist2
					assert pexprsnode3 isa nullable AExprs
					var passignopnode4 = nodearraylist3
					assert passignopnode4 isa nullable AAssignOp
					var pexprnode5 = nodearraylist4
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
						pexprnode2,
						pexprsnode3,
						passignopnode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25937,2--25960,4

nitc $ ReduceAction598 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tpluseqnode2 = nodearraylist1
					assert tpluseqnode2 isa nullable TPluseq
					var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
						tpluseqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25964,2--25975,4

nitc $ ReduceAction599 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tminuseqnode2 = nodearraylist1
					assert tminuseqnode2 isa nullable TMinuseq
					var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
						tminuseqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25979,2--25990,4

nitc $ ReduceAction600 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tstareqnode2 = nodearraylist1
					assert tstareqnode2 isa nullable TStareq
					var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
						tstareqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:25994,2--26005,4

nitc $ ReduceAction601 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tslasheqnode2 = nodearraylist1
					assert tslasheqnode2 isa nullable TSlasheq
					var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
						tslasheqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26009,2--26020,4

nitc $ ReduceAction602 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tpercenteqnode2 = nodearraylist1
					assert tpercenteqnode2 isa nullable TPercenteq
					var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
						tpercenteqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26024,2--26035,4

nitc $ ReduceAction603 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tstarstareqnode2 = nodearraylist1
					assert tstarstareqnode2 isa nullable TStarstareq
					var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
						tstarstareqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26039,2--26050,4

nitc $ ReduceAction604 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tpipeeqnode2 = nodearraylist1
					assert tpipeeqnode2 isa nullable TPipeeq
					var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
						tpipeeqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26054,2--26065,4

nitc $ ReduceAction605 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tcareteqnode2 = nodearraylist1
					assert tcareteqnode2 isa nullable TCareteq
					var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
						tcareteqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26069,2--26080,4

nitc $ ReduceAction606 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tampeqnode2 = nodearraylist1
					assert tampeqnode2 isa nullable TAmpeq
					var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
						tampeqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26084,2--26095,4

nitc $ ReduceAction607 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tlleqnode2 = nodearraylist1
					assert tlleqnode2 isa nullable TLleq
					var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
						tlleqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26099,2--26110,4

nitc $ ReduceAction608 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tggeqnode2 = nodearraylist1
					assert tggeqnode2 isa nullable TGgeq
					var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
						tggeqnode2
					)
					node_list = passignopnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26114,2--26125,4

nitc $ ReduceAction609 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwdonode2 = nodearraylist1
					assert tkwdonode2 isa nullable TKwdo
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var plabelnode6 = nodearraylist3
					assert plabelnode6 isa nullable ALabel
					var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
						tkwdonode2,
						pexprnode3,
						null,
						null,
						plabelnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26129,2--26150,4

nitc $ ReduceAction610 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwdonode2 = nodearraylist1
					assert tkwdonode2 isa nullable TKwdo
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
						tkwdonode2,
						pexprnode3,
						null,
						null,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26154,2--26172,4

nitc $ ReduceAction611 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwdonode2 = nodearraylist1
					assert tkwdonode2 isa nullable TKwdo
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwcatchnode4 = nodearraylist4
					assert tkwcatchnode4 isa nullable TKwcatch
					var pexprnode5 = nodearraylist5
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
						tkwdonode2,
						pexprnode3,
						tkwcatchnode4,
						pexprnode5,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26176,2--26201,4

nitc $ ReduceAction612 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var pexprnode5 = nodearraylist6
					assert pexprnode5 isa nullable AExpr
					var tkwelsenode6 = nodearraylist7
					assert tkwelsenode6 isa nullable TKwelse
					var pexprnode7 = nodearraylist8
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						pexprnode5,
						tkwelsenode6,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26205,2--26238,4

nitc $ ReduceAction613 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var pexprnode5 = nodearraylist6
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						pexprnode5,
						null,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26242,2--26269,4

nitc $ ReduceAction614 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var pexprnode5 = nodearraylist7
					assert pexprnode5 isa nullable AExpr
					var tkwelsenode6 = nodearraylist8
					assert tkwelsenode6 isa nullable TKwelse
					var pexprnode7 = nodearraylist9
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						pexprnode5,
						tkwelsenode6,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26273,2--26307,4

nitc $ ReduceAction615 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var tkwelsenode6 = nodearraylist6
					assert tkwelsenode6 isa nullable TKwelse
					var pexprnode7 = nodearraylist7
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						null,
						tkwelsenode6,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26311,2--26341,4

nitc $ ReduceAction616 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var tkwelsenode6 = nodearraylist7
					assert tkwelsenode6 isa nullable TKwelse
					var pexprnode7 = nodearraylist8
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						null,
						tkwelsenode6,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26345,2--26376,4

nitc $ ReduceAction617 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var pexprnode5 = nodearraylist7
					assert pexprnode5 isa nullable AExpr
					var pexprnode7 = nodearraylist8
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						pexprnode5,
						null,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26380,2--26411,4

nitc $ ReduceAction618 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var pexprnode7 = nodearraylist6
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						null,
						null,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26415,2--26442,4

nitc $ ReduceAction619 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var pexprnode7 = nodearraylist7
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						null,
						null,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26446,2--26474,4

nitc $ ReduceAction621 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwloopnode2 = nodearraylist1
					assert tkwloopnode2 isa nullable TKwloop
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var plabelnode4 = nodearraylist3
					assert plabelnode4 isa nullable ALabel
					var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
						tkwloopnode2,
						pexprnode3,
						plabelnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26478,2--26497,4

nitc $ ReduceAction622 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwloopnode2 = nodearraylist1
					assert tkwloopnode2 isa nullable TKwloop
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
						tkwloopnode2,
						pexprnode3,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26501,2--26517,4

nitc $ ReduceAction623 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwwhilenode2 = nodearraylist1
					assert tkwwhilenode2 isa nullable TKwwhile
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwdonode4 = nodearraylist5
					assert tkwdonode4 isa nullable TKwdo
					var pexprnode5 = nodearraylist6
					assert pexprnode5 isa nullable AExpr
					var plabelnode6 = nodearraylist7
					assert plabelnode6 isa nullable ALabel
					var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
						tkwwhilenode2,
						pexprnode3,
						tkwdonode4,
						pexprnode5,
						plabelnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26521,2--26550,4

nitc $ ReduceAction624 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwwhilenode2 = nodearraylist1
					assert tkwwhilenode2 isa nullable TKwwhile
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwdonode4 = nodearraylist5
					assert tkwdonode4 isa nullable TKwdo
					var pexprnode5 = nodearraylist6
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
						tkwwhilenode2,
						pexprnode3,
						tkwdonode4,
						pexprnode5,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26554,2--26580,4

nitc $ ReduceAction625 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var tkwfornode2 = nodearraylist1
					assert tkwfornode2 isa nullable TKwfor
					var listnode3 = nodearraylist3
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tkwdonode5 = nodearraylist5
					assert tkwdonode5 isa nullable TKwdo
					var pexprnode6 = nodearraylist6
					assert pexprnode6 isa nullable AExpr
					var plabelnode7 = nodearraylist7
					assert plabelnode7 isa nullable ALabel
					var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
						tkwfornode2,
						listnode4,
						tkwdonode5,
						pexprnode6,
						plabelnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26584,2--26615,4

nitc $ ReduceAction626 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var tkwfornode2 = nodearraylist1
					assert tkwfornode2 isa nullable TKwfor
					var listnode3 = nodearraylist3
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tkwdonode5 = nodearraylist5
					assert tkwdonode5 isa nullable TKwdo
					var pexprnode6 = nodearraylist6
					assert pexprnode6 isa nullable AExpr
					var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
						tkwfornode2,
						listnode4,
						tkwdonode5,
						pexprnode6,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26619,2--26647,4

nitc $ ReduceAction627 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pforgroupnode1 = nodearraylist1
					if pforgroupnode1 != null then
						listnode2.add(pforgroupnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26651,2--26662,4

nitc $ ReduceAction628 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pforgroupnode2 = nodearraylist5
					listnode3 = concat(listnode3, listnode1)
					if pforgroupnode2 != null then
						listnode3.add(pforgroupnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26666,2--26684,4

nitc $ ReduceAction629 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode2 = nodearraylist1
					assert listnode2 isa Array[Object]
					listnode3 = concat(listnode3, listnode2)
					var tkwinnode4 = nodearraylist3
					assert tkwinnode4 isa nullable TKwin
					var pexprnode5 = nodearraylist5
					assert pexprnode5 isa nullable AExpr
					var pforgroupnode1: nullable AForGroup = new AForGroup.init_aforgroup(
						listnode3,
						tkwinnode4,
						pexprnode5
					)
					node_list = pforgroupnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26688,2--26711,4

nitc $ ReduceAction630 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwwithnode2 = nodearraylist1
					assert tkwwithnode2 isa nullable TKwwith
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwdonode4 = nodearraylist5
					assert tkwdonode4 isa nullable TKwdo
					var pexprnode5 = nodearraylist6
					assert pexprnode5 isa nullable AExpr
					var plabelnode6 = nodearraylist7
					assert plabelnode6 isa nullable ALabel
					var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
						tkwwithnode2,
						pexprnode3,
						tkwdonode4,
						pexprnode5,
						plabelnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26715,2--26744,4

nitc $ ReduceAction631 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwwithnode2 = nodearraylist1
					assert tkwwithnode2 isa nullable TKwwith
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwdonode4 = nodearraylist5
					assert tkwdonode4 isa nullable TKwdo
					var pexprnode5 = nodearraylist6
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
						tkwwithnode2,
						pexprnode3,
						tkwdonode4,
						pexprnode5,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26748,2--26774,4

nitc $ ReduceAction632 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode3 = nodearraylist1
					assert tidnode3 isa nullable TId
					var ptypenode4 = nodearraylist2
					assert ptypenode4 isa nullable AType
					var tassignnode5 = nodearraylist3
					assert tassignnode5 isa nullable TAssign
					var pexprnode6 = nodearraylist5
					assert pexprnode6 isa nullable AExpr
					var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
						null,
						tidnode3,
						ptypenode4,
						tassignnode5,
						pexprnode6,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26778,2--26804,4

nitc $ ReduceAction633 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode3 = nodearraylist1
					assert tidnode3 isa nullable TId
					var ptypenode4 = nodearraylist3
					assert ptypenode4 isa nullable AType
					var tassignnode5 = nodearraylist4
					assert tassignnode5 isa nullable TAssign
					var pexprnode6 = nodearraylist6
					assert pexprnode6 isa nullable AExpr
					var pannotationsnode7 = nodearraylist2
					assert pannotationsnode7 isa nullable AAnnotations
					var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
						null,
						tidnode3,
						ptypenode4,
						tassignnode5,
						pexprnode6,
						pannotationsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26808,2--26837,4

nitc $ ReduceAction635 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwassertnode2 = nodearraylist1
					assert tkwassertnode2 isa nullable TKwassert
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tkwelsenode5 = nodearraylist3
					assert tkwelsenode5 isa nullable TKwelse
					var pexprnode6 = nodearraylist4
					assert pexprnode6 isa nullable AExpr
					var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
						tkwassertnode2,
						null,
						pexprnode4,
						tkwelsenode5,
						pexprnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26841,2--26865,4

nitc $ ReduceAction636 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwassertnode2 = nodearraylist1
					assert tkwassertnode2 isa nullable TKwassert
					var tidnode3 = nodearraylist2
					assert tidnode3 isa nullable TId
					var pexprnode4 = nodearraylist3
					assert pexprnode4 isa nullable AExpr
					var tkwelsenode5 = nodearraylist4
					assert tkwelsenode5 isa nullable TKwelse
					var pexprnode6 = nodearraylist5
					assert pexprnode6 isa nullable AExpr
					var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
						tkwassertnode2,
						tidnode3,
						pexprnode4,
						tkwelsenode5,
						pexprnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26869,2--26896,4

nitc $ ReduceAction637 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwassertnode2 = nodearraylist1
					assert tkwassertnode2 isa nullable TKwassert
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
						tkwassertnode2,
						null,
						pexprnode4,
						null,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26900,2--26918,4

nitc $ ReduceAction638 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwassertnode2 = nodearraylist1
					assert tkwassertnode2 isa nullable TKwassert
					var tidnode3 = nodearraylist2
					assert tidnode3 isa nullable TId
					var pexprnode4 = nodearraylist3
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
						tkwassertnode2,
						tidnode3,
						pexprnode4,
						null,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26922,2--26943,4

nitc $ ReduceAction639 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode1 = nodearraylist1
					node_list = tidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26947,2--26955,4

nitc $ ReduceAction641 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var pexprnode5 = nodearraylist7
					assert pexprnode5 isa nullable AExpr
					var tkwelsenode6 = nodearraylist9
					assert tkwelsenode6 isa nullable TKwelse
					var pexprnode7 = nodearraylist11
					assert pexprnode7 isa nullable AExpr
					var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						pexprnode5,
						tkwelsenode6,
						pexprnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26959,2--26995,4

nitc $ ReduceAction643 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwornode3 = nodearraylist2
					assert tkwornode3 isa nullable TKwor
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
						pexprnode2,
						tkwornode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:26999,2--27019,4

nitc $ ReduceAction644 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwandnode3 = nodearraylist2
					assert tkwandnode3 isa nullable TKwand
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
						pexprnode2,
						tkwandnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27023,2--27043,4

nitc $ ReduceAction645 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwornode3 = nodearraylist2
					assert tkwornode3 isa nullable TKwor
					var tkwelsenode4 = nodearraylist3
					assert tkwelsenode4 isa nullable TKwelse
					var pexprnode5 = nodearraylist5
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
						pexprnode2,
						tkwornode3,
						tkwelsenode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27047,2--27071,4

nitc $ ReduceAction646 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwimpliesnode3 = nodearraylist2
					assert tkwimpliesnode3 isa nullable TKwimplies
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
						pexprnode2,
						tkwimpliesnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27075,2--27095,4

nitc $ ReduceAction648 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnotnode2 = nodearraylist1
					assert tkwnotnode2 isa nullable TKwnot
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
						tkwnotnode2,
						pexprnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27099,2--27115,4

nitc $ ReduceAction650 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var teqnode3 = nodearraylist2
					assert teqnode3 isa nullable TEq
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
						pexprnode2,
						teqnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27119,2--27139,4

nitc $ ReduceAction651 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tnenode3 = nodearraylist2
					assert tnenode3 isa nullable TNe
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
						pexprnode2,
						tnenode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27143,2--27163,4

nitc $ ReduceAction652 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tltnode3 = nodearraylist2
					assert tltnode3 isa nullable TLt
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
						pexprnode2,
						tltnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27167,2--27187,4

nitc $ ReduceAction653 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tlenode3 = nodearraylist2
					assert tlenode3 isa nullable TLe
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
						pexprnode2,
						tlenode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27191,2--27211,4

nitc $ ReduceAction654 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tgtnode3 = nodearraylist2
					assert tgtnode3 isa nullable TGt
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
						pexprnode2,
						tgtnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27215,2--27235,4

nitc $ ReduceAction655 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tgenode3 = nodearraylist2
					assert tgenode3 isa nullable TGe
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
						pexprnode2,
						tgenode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27239,2--27259,4

nitc $ ReduceAction656 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tstarshipnode3 = nodearraylist2
					assert tstarshipnode3 isa nullable TStarship
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
						pexprnode2,
						tstarshipnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27263,2--27283,4

nitc $ ReduceAction657 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwisanode3 = nodearraylist2
					assert tkwisanode3 isa nullable TKwisa
					var ptypenode4 = nodearraylist4
					assert ptypenode4 isa nullable AType
					var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
						pexprnode2,
						tkwisanode3,
						ptypenode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27287,2--27307,4

nitc $ ReduceAction659 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tpipenode3 = nodearraylist2
					assert tpipenode3 isa nullable TPipe
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
						pexprnode2,
						tpipenode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27311,2--27331,4

nitc $ ReduceAction661 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tcaretnode3 = nodearraylist2
					assert tcaretnode3 isa nullable TCaret
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
						pexprnode2,
						tcaretnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27335,2--27355,4

nitc $ ReduceAction663 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tampnode3 = nodearraylist2
					assert tampnode3 isa nullable TAmp
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
						pexprnode2,
						tampnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27359,2--27379,4

nitc $ ReduceAction665 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tllnode3 = nodearraylist2
					assert tllnode3 isa nullable TLl
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
						pexprnode2,
						tllnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27383,2--27403,4

nitc $ ReduceAction666 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tggnode3 = nodearraylist2
					assert tggnode3 isa nullable TGg
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
						pexprnode2,
						tggnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27407,2--27427,4

nitc $ ReduceAction668 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tplusnode3 = nodearraylist2
					assert tplusnode3 isa nullable TPlus
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
						pexprnode2,
						tplusnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27431,2--27451,4

nitc $ ReduceAction669 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tminusnode3 = nodearraylist2
					assert tminusnode3 isa nullable TMinus
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
						pexprnode2,
						tminusnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27455,2--27475,4

nitc $ ReduceAction671 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tstarnode3 = nodearraylist2
					assert tstarnode3 isa nullable TStar
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
						pexprnode2,
						tstarnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27479,2--27499,4

nitc $ ReduceAction672 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tslashnode3 = nodearraylist2
					assert tslashnode3 isa nullable TSlash
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
						pexprnode2,
						tslashnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27503,2--27523,4

nitc $ ReduceAction673 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tpercentnode3 = nodearraylist2
					assert tpercentnode3 isa nullable TPercent
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
						pexprnode2,
						tpercentnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27527,2--27547,4

nitc $ ReduceAction675 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tstarstarnode3 = nodearraylist2
					assert tstarstarnode3 isa nullable TStarstar
					var pexprnode4 = nodearraylist4
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
						pexprnode2,
						tstarstarnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27551,2--27571,4

nitc $ ReduceAction677 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tminusnode2 = nodearraylist1
					assert tminusnode2 isa nullable TMinus
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
						tminusnode2,
						pexprnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27575,2--27590,4

nitc $ ReduceAction678 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tplusnode2 = nodearraylist1
					assert tplusnode2 isa nullable TPlus
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
						tplusnode2,
						pexprnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27594,2--27609,4

nitc $ ReduceAction679 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var ttildenode2 = nodearraylist1
					assert ttildenode2 isa nullable TTilde
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
						ttildenode2,
						pexprnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27613,2--27628,4

nitc $ ReduceAction680 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwoncenode2 = nodearraylist1
					assert tkwoncenode2 isa nullable TKwonce
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
						tkwoncenode2,
						pexprnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27632,2--27648,4

nitc $ ReduceAction682 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var pexprsnode5 = nodearraylist4
					assert pexprsnode5 isa nullable AExprs
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						null,
						pexprsnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27652,2--27673,4

nitc $ ReduceAction683 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var listnode6 = new Array[Object]
					var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode6
					)
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						null,
						pexprsnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27677,2--27699,4

nitc $ ReduceAction684 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwissetnode2 = nodearraylist1
					assert tkwissetnode2 isa nullable TKwisset
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var tattridnode4 = nodearraylist6
					assert tattridnode4 isa nullable TAttrid
					var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
						tkwissetnode2,
						pexprnode3,
						tattridnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27703,2--27725,4

nitc $ ReduceAction685 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwissetnode2 = nodearraylist1
					assert tkwissetnode2 isa nullable TKwisset
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var tattridnode6 = nodearraylist7
					assert tattridnode6 isa nullable TAttrid
					var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
						tkwissetnode2,
						pexprnode3,
						tattridnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27729,2--27758,4

nitc $ ReduceAction686 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwissetnode2 = nodearraylist1
					assert tkwissetnode2 isa nullable TKwisset
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tattridnode4 = nodearraylist3
					assert tattridnode4 isa nullable TAttrid
					var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
						tkwissetnode2,
						pexprnode3,
						tattridnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27762,2--27780,4

nitc $ ReduceAction687 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var tidnode6 = nodearraylist5
					assert tidnode6 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						null,
						tidnode6
					)
					var pexprsnode7 = nodearraylist6
					assert pexprsnode7 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27784,2--27813,4

nitc $ ReduceAction688 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var tidnode6 = nodearraylist5
					assert tidnode6 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						null,
						tidnode6
					)
					var listnode8 = new Array[Object]
					var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode8
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27817,2--27847,4

nitc $ ReduceAction689 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode6 = new Array[Object]
					var tclassidnode7 = nodearraylist5
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode8
					)
					var pexprsnode9 = nodearraylist7
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27851,2--27888,4

nitc $ ReduceAction690 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode6 = new Array[Object]
					var tclassidnode7 = nodearraylist5
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27892,2--27930,4

nitc $ ReduceAction691 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist5
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var tclassidnode8 = nodearraylist6
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist7
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var pexprsnode10 = nodearraylist8
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27934,2--27975,4

nitc $ ReduceAction692 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist5
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var tclassidnode8 = nodearraylist6
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist7
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:27979,2--28021,4

nitc $ ReduceAction693 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist5
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						null
					)
					var tidnode9 = nodearraylist6
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var pexprsnode10 = nodearraylist7
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28025,2--28063,4

nitc $ ReduceAction694 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist5
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						null
					)
					var tidnode9 = nodearraylist6
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28067,2--28106,4

nitc $ ReduceAction695 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode6: nullable AQid = new AQid.init_aqid(
						null,
						tidnode8
					)
					var pexprsnode9 = nodearraylist7
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode6,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28110,2--28146,4

nitc $ ReduceAction696 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode6: nullable AQid = new AQid.init_aqid(
						null,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode6,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28150,2--28187,4

nitc $ ReduceAction697 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var listnode8 = new Array[Object]
					var tclassidnode9 = nodearraylist6
					assert tclassidnode9 isa nullable TClassid
					var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						tclassidnode9
					)
					var tidnode10 = nodearraylist7
					assert tidnode10 isa nullable TId
					var pqidnode6: nullable AQid = new AQid.init_aqid(
						pqualifiednode7,
						tidnode10
					)
					var pexprsnode11 = nodearraylist8
					assert pexprsnode11 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode6,
						pexprsnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28191,2--28235,4

nitc $ ReduceAction698 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var listnode8 = new Array[Object]
					var tclassidnode9 = nodearraylist6
					assert tclassidnode9 isa nullable TClassid
					var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						tclassidnode9
					)
					var tidnode10 = nodearraylist7
					assert tidnode10 isa nullable TId
					var pqidnode6: nullable AQid = new AQid.init_aqid(
						pqualifiednode7,
						tidnode10
					)
					var listnode12 = new Array[Object]
					var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode12
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode6,
						pexprsnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28239,2--28284,4

nitc $ ReduceAction699 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var listnode9 = new Array[Object]
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tclassidnode10 = nodearraylist7
					assert tclassidnode10 isa nullable TClassid
					var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
						listnode9,
						tclassidnode10
					)
					var tidnode11 = nodearraylist8
					assert tidnode11 isa nullable TId
					var pqidnode6: nullable AQid = new AQid.init_aqid(
						pqualifiednode7,
						tidnode11
					)
					var pexprsnode12 = nodearraylist9
					assert pexprsnode12 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode6,
						pexprsnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28288,2--28336,4

nitc $ ReduceAction700 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var listnode9 = new Array[Object]
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tclassidnode10 = nodearraylist7
					assert tclassidnode10 isa nullable TClassid
					var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
						listnode9,
						tclassidnode10
					)
					var tidnode11 = nodearraylist8
					assert tidnode11 isa nullable TId
					var pqidnode6: nullable AQid = new AQid.init_aqid(
						pqualifiednode7,
						tidnode11
					)
					var listnode13 = new Array[Object]
					var pexprsnode12: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode13
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode6,
						pexprsnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28340,2--28389,4

nitc $ ReduceAction701 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var listnode9 = new Array[Object]
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
						listnode9,
						null
					)
					var tidnode11 = nodearraylist7
					assert tidnode11 isa nullable TId
					var pqidnode6: nullable AQid = new AQid.init_aqid(
						pqualifiednode7,
						tidnode11
					)
					var pexprsnode12 = nodearraylist8
					assert pexprsnode12 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode6,
						pexprsnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28393,2--28438,4

nitc $ ReduceAction702 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode4 = nodearraylist2
					assert pexprnode4 isa nullable AExpr
					var tquestnode5 = nodearraylist3
					assert tquestnode5 isa nullable TQuest
					var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode4,
						tquestnode5
					)
					var listnode9 = new Array[Object]
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
						listnode9,
						null
					)
					var tidnode11 = nodearraylist7
					assert tidnode11 isa nullable TId
					var pqidnode6: nullable AQid = new AQid.init_aqid(
						pqualifiednode7,
						tidnode11
					)
					var listnode13 = new Array[Object]
					var pexprsnode12: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode13
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode6,
						pexprsnode12
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28442,2--28488,4

nitc $ ReduceAction703 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tidnode6 = nodearraylist2
					assert tidnode6 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						null,
						tidnode6
					)
					var pexprsnode7 = nodearraylist3
					assert pexprsnode7 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28492,2--28517,4

nitc $ ReduceAction704 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tidnode6 = nodearraylist2
					assert tidnode6 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						null,
						tidnode6
					)
					var listnode8 = new Array[Object]
					var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode8
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28521,2--28547,4

nitc $ ReduceAction705 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var tclassidnode7 = nodearraylist2
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode8
					)
					var pexprsnode9 = nodearraylist4
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28551,2--28584,4

nitc $ ReduceAction706 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var tclassidnode7 = nodearraylist2
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28588,2--28622,4

nitc $ ReduceAction707 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist2
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var tclassidnode8 = nodearraylist3
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist4
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var pexprsnode10 = nodearraylist5
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28626,2--28663,4

nitc $ ReduceAction708 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist2
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var tclassidnode8 = nodearraylist3
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist4
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28667,2--28705,4

nitc $ ReduceAction709 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist2
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						null
					)
					var tidnode9 = nodearraylist3
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var pexprsnode10 = nodearraylist4
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28709,2--28743,4

nitc $ ReduceAction710 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist2
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						null
					)
					var tidnode9 = nodearraylist3
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28747,2--28782,4

nitc $ ReduceAction712 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tattridnode3 = nodearraylist5
					assert tattridnode3 isa nullable TAttrid
					var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
						pexprnode2,
						tattridnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28786,2--28804,4

nitc $ ReduceAction713 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tattridnode5 = nodearraylist6
					assert tattridnode5 isa nullable TAttrid
					var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
						pexprnode2,
						tattridnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28808,2--28833,4

nitc $ ReduceAction714 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tattridnode3 = nodearraylist2
					assert tattridnode3 isa nullable TAttrid
					var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
						pexprnode2,
						tattridnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28837,2--28851,4

nitc $ ReduceAction716 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tidnode5 = nodearraylist4
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var listnode7 = new Array[Object]
					var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode7
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28855,2--28881,4

nitc $ ReduceAction718 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist4
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28885,2--28919,4

nitc $ ReduceAction720 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist5
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist6
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28923,2--28961,4

nitc $ ReduceAction722 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist5
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:28965,2--29000,4

nitc $ ReduceAction724 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tidnode7 = nodearraylist5
					assert tidnode7 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						null,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29004,2--29037,4

nitc $ ReduceAction726 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode7 = new Array[Object]
					var tclassidnode8 = nodearraylist5
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist6
					assert tidnode9 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29041,2--29082,4

nitc $ ReduceAction728 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var tclassidnode9 = nodearraylist6
					assert tclassidnode9 isa nullable TClassid
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						tclassidnode9
					)
					var tidnode10 = nodearraylist7
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var listnode12 = new Array[Object]
					var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode12
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29086,2--29131,4

nitc $ ReduceAction730 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var listnode8 = new Array[Object]
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
						listnode8,
						null
					)
					var tidnode10 = nodearraylist6
					assert tidnode10 isa nullable TId
					var pqidnode5: nullable AQid = new AQid.init_aqid(
						pqualifiednode6,
						tidnode10
					)
					var listnode12 = new Array[Object]
					var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode12
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode5,
						pexprsnode11
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29135,2--29177,4

nitc $ ReduceAction732 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tidnode5 = nodearraylist1
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var listnode7 = new Array[Object]
					var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode7
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29181,2--29203,4

nitc $ ReduceAction734 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist1
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist2
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29207,2--29237,4

nitc $ ReduceAction736 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist2
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29241,2--29275,4

nitc $ ReduceAction738 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist1
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist2
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29279,2--29310,4

nitc $ ReduceAction740 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pqualifiednode2 = nodearraylist1
					assert pqualifiednode2 isa nullable AQualified
					var tkwsupernode3 = nodearraylist2
					assert tkwsupernode3 isa nullable TKwsuper
					var listnode5 = new Array[Object]
					var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode5
					)
					var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
						pqualifiednode2,
						tkwsupernode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29314,2--29334,4

nitc $ ReduceAction742 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwinitnode3 = nodearraylist4
					assert tkwinitnode3 isa nullable TKwinit
					var listnode5 = new Array[Object]
					var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode5
					)
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29338,2--29360,4

nitc $ ReduceAction744 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var tkwinitnode5 = nodearraylist5
					assert tkwinitnode5 isa nullable TKwinit
					var listnode7 = new Array[Object]
					var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode7
					)
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode5,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29364,2--29393,4

nitc $ ReduceAction746 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var tkwinitnode3 = nodearraylist1
					assert tkwinitnode3 isa nullable TKwinit
					var listnode5 = new Array[Object]
					var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode5
					)
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29397,2--29415,4

nitc $ ReduceAction747 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var pexprsnode3 = nodearraylist2
					assert pexprsnode3 isa nullable AExprs
					var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
						pexprnode2,
						pexprsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29419,2--29434,4

nitc $ ReduceAction748 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var tidnode6 = nodearraylist6
					assert tidnode6 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						null,
						tidnode6
					)
					var pexprsnode7 = nodearraylist7
					assert pexprsnode7 isa nullable AExprs
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						pqidnode4,
						pexprsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29438,2--29468,4

nitc $ ReduceAction749 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var tidnode6 = nodearraylist6
					assert tidnode6 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						null,
						tidnode6
					)
					var listnode8 = new Array[Object]
					var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode8
					)
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						pqidnode4,
						pexprsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29472,2--29503,4

nitc $ ReduceAction750 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var listnode6 = new Array[Object]
					var tclassidnode7 = nodearraylist6
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist7
					assert tidnode8 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode8
					)
					var pexprsnode9 = nodearraylist8
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						pqidnode4,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29507,2--29545,4

nitc $ ReduceAction751 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var listnode6 = new Array[Object]
					var tclassidnode7 = nodearraylist6
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist7
					assert tidnode8 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						pqidnode4,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29549,2--29588,4

nitc $ ReduceAction752 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist6
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var tclassidnode8 = nodearraylist7
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist8
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var pexprsnode10 = nodearraylist9
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29592,2--29634,4

nitc $ ReduceAction753 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist6
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var tclassidnode8 = nodearraylist7
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist8
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29638,2--29681,4

nitc $ ReduceAction754 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist6
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						null
					)
					var tidnode9 = nodearraylist7
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var pexprsnode10 = nodearraylist8
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29685,2--29724,4

nitc $ ReduceAction755 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnewnode2 = nodearraylist1
					assert tkwnewnode2 isa nullable TKwnew
					var ptypenode3 = nodearraylist3
					assert ptypenode3 isa nullable AType
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist6
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						null
					)
					var tidnode9 = nodearraylist7
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
						tkwnewnode2,
						ptypenode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29728,2--29768,4

nitc $ ReduceAction756 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwasnode3 = nodearraylist4
					assert tkwasnode3 isa nullable TKwas
					var toparnode4 = nodearraylist6
					assert toparnode4 isa nullable TOpar
					var ptypenode5 = nodearraylist8
					assert ptypenode5 isa nullable AType
					var tcparnode6 = nodearraylist10
					assert tcparnode6 isa nullable TCpar
					var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
						pexprnode2,
						tkwasnode3,
						toparnode4,
						ptypenode5,
						tcparnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29772,2--29804,4

nitc $ ReduceAction757 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist12 = p.pop
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwasnode3 = nodearraylist4
					assert tkwasnode3 isa nullable TKwas
					var toparnode4 = nodearraylist6
					assert toparnode4 isa nullable TOpar
					var tkwnotnode5 = nodearraylist8
					assert tkwnotnode5 isa nullable TKwnot
					var tkwnullnode6 = nodearraylist10
					assert tkwnullnode6 isa nullable TKwnull
					var tcparnode7 = nodearraylist12
					assert tcparnode7 isa nullable TCpar
					var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
						pexprnode2,
						tkwasnode3,
						toparnode4,
						tkwnotnode5,
						tkwnullnode6,
						tcparnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29808,2--29845,4

nitc $ ReduceAction758 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwasnode3 = nodearraylist4
					assert tkwasnode3 isa nullable TKwas
					var tkwnotnode5 = nodearraylist6
					assert tkwnotnode5 isa nullable TKwnot
					var tkwnullnode6 = nodearraylist8
					assert tkwnullnode6 isa nullable TKwnull
					var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
						pexprnode2,
						tkwasnode3,
						null,
						tkwnotnode5,
						tkwnullnode6,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29849,2--29878,4

nitc $ ReduceAction760 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tdotdotdotnode3 = nodearraylist2
					assert tdotdotdotnode3 isa nullable TDotdotdot
					var pexprnode1: nullable AVarargExpr = new AVarargExpr.init_avarargexpr(
						pexprnode2,
						tdotdotdotnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29882,2--29897,4

nitc $ ReduceAction761 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var tassignnode3 = nodearraylist2
					assert tassignnode3 isa nullable TAssign
					var pexprnode4 = nodearraylist3
					assert pexprnode4 isa nullable AExpr
					var pexprnode1: nullable ANamedargExpr = new ANamedargExpr.init_anamedargexpr(
						tidnode2,
						tassignnode3,
						pexprnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29901,2--29920,4

nitc $ ReduceAction762 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwselfnode2 = nodearraylist1
					assert tkwselfnode2 isa nullable TKwself
					var pannotationsnode3 = nodearraylist2
					assert pannotationsnode3 isa nullable AAnnotations
					var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
						tkwselfnode2,
						pannotationsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29924,2--29939,4

nitc $ ReduceAction763 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwtruenode2 = nodearraylist1
					assert tkwtruenode2 isa nullable TKwtrue
					var pannotationsnode3 = nodearraylist2
					assert pannotationsnode3 isa nullable AAnnotations
					var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
						tkwtruenode2,
						pannotationsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29943,2--29958,4

nitc $ ReduceAction764 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwfalsenode2 = nodearraylist1
					assert tkwfalsenode2 isa nullable TKwfalse
					var pannotationsnode3 = nodearraylist2
					assert pannotationsnode3 isa nullable AAnnotations
					var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
						tkwfalsenode2,
						pannotationsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29962,2--29977,4

nitc $ ReduceAction765 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwnullnode2 = nodearraylist1
					assert tkwnullnode2 isa nullable TKwnull
					var pannotationsnode3 = nodearraylist2
					assert pannotationsnode3 isa nullable AAnnotations
					var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
						tkwnullnode2,
						pannotationsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:29981,2--29996,4

nitc $ ReduceAction766 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tintegernode2 = nodearraylist1
					assert tintegernode2 isa nullable TInteger
					var pannotationsnode3 = nodearraylist2
					assert pannotationsnode3 isa nullable AAnnotations
					var pexprnode1: nullable AIntegerExpr = new AIntegerExpr.init_aintegerexpr(
						tintegernode2,
						pannotationsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30000,2--30015,4

nitc $ ReduceAction767 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tfloatnode2 = nodearraylist1
					assert tfloatnode2 isa nullable TFloat
					var pannotationsnode3 = nodearraylist2
					assert pannotationsnode3 isa nullable AAnnotations
					var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
						tfloatnode2,
						pannotationsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30019,2--30034,4

nitc $ ReduceAction768 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tcharnode2 = nodearraylist1
					assert tcharnode2 isa nullable TChar
					var pannotationsnode3 = nodearraylist2
					assert pannotationsnode3 isa nullable AAnnotations
					var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
						tcharnode2,
						pannotationsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30038,2--30053,4

nitc $ ReduceAction769 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tstringnode2 = nodearraylist1
					assert tstringnode2 isa nullable TString
					var pannotationsnode3 = nodearraylist2
					assert pannotationsnode3 isa nullable AAnnotations
					var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
						tstringnode2,
						pannotationsnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30057,2--30072,4

nitc $ ReduceAction771 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwmethnode2 = nodearraylist1
					assert tkwmethnode2 isa nullable TKwmeth
					var psignaturenode3 = nodearraylist2
					assert psignaturenode3 isa nullable ASignature
					var tkwdonode4 = nodearraylist3
					assert tkwdonode4 isa nullable TKwdo
					var listnode7 = new Array[Object]
					var pexprnode6 = nodearraylist5
					assert pexprnode6 isa nullable AExpr
					if pexprnode6 != null then
						listnode7.add(pexprnode6)
					end
					var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode7,
						null
					)
					var pexprnode1: nullable ALambdaExpr = new ALambdaExpr.init_alambdaexpr(
						tkwmethnode2,
						psignaturenode3,
						tkwdonode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30076,2--30110,4

nitc $ ReduceAction772 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwmethnode2 = nodearraylist1
					assert tkwmethnode2 isa nullable TKwmeth
					var psignaturenode3 = nodearraylist2
					assert psignaturenode3 isa nullable ASignature
					var tkwdonode4 = nodearraylist3
					assert tkwdonode4 isa nullable TKwdo
					var listnode8 = new Array[Object]
					var pexprnode6 = nodearraylist5
					assert pexprnode6 isa nullable AExpr
					var listnode7 = nodearraylist6
					assert listnode7 isa Array[Object]
					if pexprnode6 != null then
						listnode8.add(pexprnode6)
					end
					listnode8 = concat(listnode8, listnode7)
					var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
						listnode8,
						null
					)
					var pexprnode1: nullable ALambdaExpr = new ALambdaExpr.init_alambdaexpr(
						tkwmethnode2,
						psignaturenode3,
						tkwdonode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30114,2--30152,4

nitc $ ReduceAction773 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwmethnode2 = nodearraylist1
					assert tkwmethnode2 isa nullable TKwmeth
					var psignaturenode3 = nodearraylist2
					assert psignaturenode3 isa nullable ASignature
					var tkwdonode4 = nodearraylist3
					assert tkwdonode4 isa nullable TKwdo
					var pexprnode5 = nodearraylist5
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable ALambdaExpr = new ALambdaExpr.init_alambdaexpr(
						tkwmethnode2,
						psignaturenode3,
						tkwdonode4,
						pexprnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30156,2--30180,4

nitc $ ReduceAction775 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tobranode2 = nodearraylist1
					assert tobranode2 isa nullable TObra
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tdotdotnode4 = nodearraylist5
					assert tdotdotnode4 isa nullable TDotdot
					var pexprnode5 = nodearraylist7
					assert pexprnode5 isa nullable AExpr
					var tcbranode6 = nodearraylist9
					assert tcbranode6 isa nullable TCbra
					var pannotationsnode7 = nodearraylist10
					assert pannotationsnode7 isa nullable AAnnotations
					var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
						tobranode2,
						pexprnode3,
						tdotdotnode4,
						pexprnode5,
						tcbranode6,
						pannotationsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30184,2--30219,4

nitc $ ReduceAction776 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tobranode2 = nodearraylist1
					assert tobranode2 isa nullable TObra
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tdotdotnode4 = nodearraylist5
					assert tdotdotnode4 isa nullable TDotdot
					var pexprnode5 = nodearraylist7
					assert pexprnode5 isa nullable AExpr
					var tobranode6 = nodearraylist9
					assert tobranode6 isa nullable TObra
					var pannotationsnode7 = nodearraylist10
					assert pannotationsnode7 isa nullable AAnnotations
					var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
						tobranode2,
						pexprnode3,
						tdotdotnode4,
						pexprnode5,
						tobranode6,
						pannotationsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30223,2--30258,4

nitc $ ReduceAction777 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var tobranode2 = nodearraylist1
					assert tobranode2 isa nullable TObra
					var listnode3 = nodearraylist3
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var ptypenode5 = nodearraylist4
					assert ptypenode5 isa nullable AType
					var tcbranode6 = nodearraylist5
					assert tcbranode6 isa nullable TCbra
					var pannotationsnode7 = nodearraylist6
					assert pannotationsnode7 isa nullable AAnnotations
					var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
						tobranode2,
						listnode4,
						ptypenode5,
						tcbranode6,
						pannotationsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30262,2--30292,4

nitc $ ReduceAction778 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var toparnode2 = nodearraylist1
					assert toparnode2 isa nullable TOpar
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tcparnode4 = nodearraylist5
					assert tcparnode4 isa nullable TCpar
					var pannotationsnode5 = nodearraylist6
					assert pannotationsnode5 isa nullable AAnnotations
					var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
						toparnode2,
						pexprnode3,
						tcparnode4,
						pannotationsnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30296,2--30321,4

nitc $ ReduceAction780 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode3 = nodearraylist2
					assert listnode3 isa Array[Object]
					if pexprnode2 != null then
						listnode4.add(pexprnode2)
					end
					listnode4 = concat(listnode4, listnode3)
					var pexprnode1: nullable AManyExpr = new AManyExpr.init_amanyexpr(
						listnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30325,2--30344,4

nitc $ ReduceAction781 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode1 = nodearraylist3
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30348,2--30357,4

nitc $ ReduceAction782 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pexprnode1 = nodearraylist1
					if pexprnode1 != null then
						listnode2.add(pexprnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30361,2--30372,4

nitc $ ReduceAction783 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pexprnode1 = nodearraylist1
					var listnode2 = nodearraylist2
					assert listnode2 isa Array[Object]
					if pexprnode1 != null then
						listnode3.add(pexprnode1)
					end
					listnode3 = concat(listnode3, listnode2)
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30376,2--30391,4

nitc $ ReduceAction785 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode1 = nodearraylist1
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30395,2--30403,4

nitc $ ReduceAction787 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwifnode2 = nodearraylist1
					assert tkwifnode2 isa nullable TKwif
					var pexprnode3 = nodearraylist3
					assert pexprnode3 isa nullable AExpr
					var tkwthennode4 = nodearraylist5
					assert tkwthennode4 isa nullable TKwthen
					var pexprnode5 = nodearraylist7
					assert pexprnode5 isa nullable AExpr
					var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
						tkwifnode2,
						pexprnode3,
						tkwthennode4,
						pexprnode5,
						null,
						null
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30407,2--30435,4

nitc $ ReduceAction788 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode2 = nodearraylist1
					assert listnode2 isa Array[Object]
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					listnode4 = concat(listnode4, listnode2)
					if pexprnode3 != null then
						listnode4.add(pexprnode3)
					end
					var pannotationsnode5 = nodearraylist3
					assert pannotationsnode5 isa nullable AAnnotations
					var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
						listnode4,
						pannotationsnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30439,2--30462,4

nitc $ ReduceAction789 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode5 = new Array[Object]
					var listnode2 = nodearraylist1
					assert listnode2 isa Array[Object]
					var listnode3 = nodearraylist2
					assert listnode3 isa Array[Object]
					var pexprnode4 = nodearraylist3
					assert pexprnode4 isa nullable AExpr
					listnode5 = concat(listnode5, listnode2)
					listnode5 = concat(listnode5, listnode3)
					if pexprnode4 != null then
						listnode5.add(pexprnode4)
					end
					var pannotationsnode6 = nodearraylist4
					assert pannotationsnode6 isa nullable AAnnotations
					var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
						listnode5,
						pannotationsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30466,2--30493,4

nitc $ ReduceAction790 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pexprnode1 = nodearraylist1
					var pexprnode2 = nodearraylist3
					if pexprnode1 != null then
						listnode3.add(pexprnode1)
					end
					if pexprnode2 != null then
						listnode3.add(pexprnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30497,2--30515,4

nitc $ ReduceAction791 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pexprnode1 = nodearraylist1
					if pexprnode1 != null then
						listnode2.add(pexprnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30519,2--30531,4

nitc $ ReduceAction792 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tstartstringnode2 = nodearraylist1
					assert tstartstringnode2 isa nullable TStartString
					var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
						tstartstringnode2
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30535,2--30546,4

nitc $ ReduceAction795 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tmidstringnode2 = nodearraylist1
					assert tmidstringnode2 isa nullable TMidString
					var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
						tmidstringnode2
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30550,2--30561,4

nitc $ ReduceAction796 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tendstringnode2 = nodearraylist1
					assert tendstringnode2 isa nullable TEndString
					var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
						tendstringnode2
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30565,2--30576,4

nitc $ ReduceAction797 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode6 = new Array[Object]
					var tatnode3 = nodearraylist1
					assert tatnode3 isa nullable TAt
					var pannotationnode5 = nodearraylist2
					assert pannotationnode5 isa nullable AAnnotation
					if pannotationnode5 != null then
						listnode6.add(pannotationnode5)
					end
					var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
						null,
						tatnode3,
						null,
						listnode6,
						null,
						null
					)
					node_list = pannotationsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30580,2--30603,4

nitc $ ReduceAction798 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode6 = new Array[Object]
					var tatnode3 = nodearraylist1
					assert tatnode3 isa nullable TAt
					var toparnode4 = nodearraylist2
					assert toparnode4 isa nullable TOpar
					var listnode5 = nodearraylist4
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tcparnode7 = nodearraylist6
					assert tcparnode7 isa nullable TCpar
					var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
						null,
						tatnode3,
						toparnode4,
						listnode6,
						tcparnode7,
						null
					)
					node_list = pannotationsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30607,2--30636,4

nitc $ ReduceAction799 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pannotationsnode1 = nodearraylist1
					node_list = pannotationsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30640,2--30647,4

nitc $ ReduceAction801 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist1
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist2
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30651,2--30676,4

nitc $ ReduceAction802 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwpublicnode5 = nodearraylist1
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist4
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30680,2--30709,4

nitc $ ReduceAction803 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwprivatenode5 = nodearraylist1
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist4
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30713,2--30742,4

nitc $ ReduceAction804 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwprotectednode5 = nodearraylist1
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist4
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30746,2--30775,4

nitc $ ReduceAction805 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwintrudenode5 = nodearraylist1
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist4
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30779,2--30808,4

nitc $ ReduceAction806 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist2
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist3
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30812,2--30840,4

nitc $ ReduceAction807 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist5
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30844,2--30876,4

nitc $ ReduceAction808 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist5
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30880,2--30912,4

nitc $ ReduceAction809 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist5
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30916,2--30948,4

nitc $ ReduceAction810 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist5
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30952,2--30984,4

nitc $ ReduceAction811 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist1
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist2
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist4
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist6
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:30988,2--31025,4

nitc $ ReduceAction812 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwpublicnode5 = nodearraylist1
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist4
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31029,2--31070,4

nitc $ ReduceAction813 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwprivatenode5 = nodearraylist1
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist4
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31074,2--31115,4

nitc $ ReduceAction814 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwprotectednode5 = nodearraylist1
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist4
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31119,2--31160,4

nitc $ ReduceAction815 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwintrudenode5 = nodearraylist1
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist4
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31164,2--31205,4

nitc $ ReduceAction816 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist2
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist3
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist5
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist7
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31209,2--31249,4

nitc $ ReduceAction817 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31253,2--31297,4

nitc $ ReduceAction818 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31301,2--31345,4

nitc $ ReduceAction819 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31349,2--31393,4

nitc $ ReduceAction820 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31397,2--31441,4

nitc $ ReduceAction821 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pannotationnode1 = nodearraylist1
					if pannotationnode1 != null then
						listnode2.add(pannotationnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31445,2--31456,4

nitc $ ReduceAction822 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pannotationnode1 = nodearraylist1
					var listnode2 = nodearraylist2
					assert listnode2 isa Array[Object]
					if pannotationnode1 != null then
						listnode3.add(pannotationnode1)
					end
					listnode3 = concat(listnode3, listnode2)
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31460,2--31475,4

nitc $ ReduceAction843 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist1
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist2
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31479,2--31507,4

nitc $ ReduceAction844 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwpublicnode5 = nodearraylist1
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist4
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31511,2--31543,4

nitc $ ReduceAction845 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwprivatenode5 = nodearraylist1
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist4
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31547,2--31579,4

nitc $ ReduceAction846 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwprotectednode5 = nodearraylist1
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist4
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31583,2--31615,4

nitc $ ReduceAction847 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwintrudenode5 = nodearraylist1
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist4
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31619,2--31651,4

nitc $ ReduceAction848 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist2
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist3
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31655,2--31686,4

nitc $ ReduceAction849 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist5
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31690,2--31725,4

nitc $ ReduceAction850 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist5
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31729,2--31764,4

nitc $ ReduceAction851 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist5
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31768,2--31803,4

nitc $ ReduceAction852 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var tkwredefnode3 = nodearraylist1
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pexprnode8 = nodearraylist5
					assert pexprnode8 isa nullable AExpr
					if pexprnode8 != null then
						listnode9.add(pexprnode8)
					end
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						null,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31807,2--31842,4

nitc $ ReduceAction854 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pannotationnode1 = nodearraylist3
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31846,2--31855,4

nitc $ ReduceAction855 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist2
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31859,2--31885,4

nitc $ ReduceAction856 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31889,2--31919,4

nitc $ ReduceAction857 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31923,2--31953,4

nitc $ ReduceAction858 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31957,2--31987,4

nitc $ ReduceAction859 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:31991,2--32021,4

nitc $ ReduceAction860 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32025,2--32054,4

nitc $ ReduceAction861 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32058,2--32091,4

nitc $ ReduceAction862 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32095,2--32128,4

nitc $ ReduceAction863 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32132,2--32165,4

nitc $ ReduceAction864 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32169,2--32202,4

nitc $ ReduceAction865 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist2
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist3
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32206,2--32235,4

nitc $ ReduceAction866 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist5
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32239,2--32272,4

nitc $ ReduceAction867 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist5
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32276,2--32309,4

nitc $ ReduceAction868 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist5
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32313,2--32346,4

nitc $ ReduceAction869 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist5
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32350,2--32383,4

nitc $ ReduceAction870 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist4
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32387,2--32419,4

nitc $ ReduceAction871 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist6
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32423,2--32459,4

nitc $ ReduceAction872 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist6
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32463,2--32499,4

nitc $ ReduceAction873 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist6
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32503,2--32539,4

nitc $ ReduceAction874 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var pannotationsnode10 = nodearraylist6
					assert pannotationsnode10 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode8,
						null,
						pannotationsnode10
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32543,2--32579,4

nitc $ ReduceAction875 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist2
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist3
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist5
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist6
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32583,2--32620,4

nitc $ ReduceAction876 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32624,2--32665,4

nitc $ ReduceAction877 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32669,2--32710,4

nitc $ ReduceAction878 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32714,2--32755,4

nitc $ ReduceAction879 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32759,2--32800,4

nitc $ ReduceAction880 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist4
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist7
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32804,2--32844,4

nitc $ ReduceAction881 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist6
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist8
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32848,2--32892,4

nitc $ ReduceAction882 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist6
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist8
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32896,2--32940,4

nitc $ ReduceAction883 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist6
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist8
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32944,2--32988,4

nitc $ ReduceAction884 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist6
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist8
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:32992,2--33036,4

nitc $ ReduceAction885 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist2
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist3
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist5
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist6
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist7
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33040,2--33080,4

nitc $ ReduceAction886 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33084,2--33128,4

nitc $ ReduceAction887 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33132,2--33176,4

nitc $ ReduceAction888 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33180,2--33224,4

nitc $ ReduceAction889 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist5
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist7
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist8
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist9
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33228,2--33272,4

nitc $ ReduceAction890 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist4
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist7
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist8
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33276,2--33319,4

nitc $ ReduceAction891 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist6
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist8
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33323,2--33370,4

nitc $ ReduceAction892 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist6
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist8
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33374,2--33421,4

nitc $ ReduceAction893 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist6
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist8
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33425,2--33472,4

nitc $ ReduceAction894 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist11 = p.pop
					var nodearraylist10 = p.pop
					var nodearraylist9 = p.pop
					var nodearraylist8 = p.pop
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var toparnode7 = nodearraylist6
					assert toparnode7 isa nullable TOpar
					var listnode8 = nodearraylist8
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var tcparnode10 = nodearraylist9
					assert tcparnode10 isa nullable TCpar
					var pannotationsnode11 = nodearraylist10
					assert pannotationsnode11 isa nullable AAnnotations
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						toparnode7,
						listnode9,
						tcparnode10,
						pannotationsnode11
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33476,2--33523,4

nitc $ ReduceAction895 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist2
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist3
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33527,2--33557,4

nitc $ ReduceAction896 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwpublicnode5 = nodearraylist2
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist5
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33561,2--33595,4

nitc $ ReduceAction897 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprivatenode5 = nodearraylist2
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist5
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33599,2--33633,4

nitc $ ReduceAction898 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwprotectednode5 = nodearraylist2
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist5
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33637,2--33671,4

nitc $ ReduceAction899 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwintrudenode5 = nodearraylist2
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist4
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist5
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						null,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33675,2--33709,4

nitc $ ReduceAction900 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						null
					)
					var patidnode6 = nodearraylist3
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist4
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33713,2--33746,4

nitc $ ReduceAction901 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwpublicnode5 = nodearraylist3
					assert tkwpublicnode5 isa nullable TKwpublic
					var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
						tkwpublicnode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33750,2--33787,4

nitc $ ReduceAction902 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprivatenode5 = nodearraylist3
					assert tkwprivatenode5 isa nullable TKwprivate
					var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
						tkwprivatenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33791,2--33828,4

nitc $ ReduceAction903 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwprotectednode5 = nodearraylist3
					assert tkwprotectednode5 isa nullable TKwprotected
					var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
						tkwprotectednode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33832,2--33869,4

nitc $ ReduceAction904 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode9 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var tkwredefnode3 = nodearraylist2
					assert tkwredefnode3 isa nullable TKwredef
					var tkwintrudenode5 = nodearraylist3
					assert tkwintrudenode5 isa nullable TKwintrude
					var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
						tkwintrudenode5
					)
					var patidnode6 = nodearraylist5
					assert patidnode6 isa nullable AAtid
					var listnode8 = nodearraylist6
					assert listnode8 isa Array[Object]
					listnode9 = concat(listnode9, listnode8)
					var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
						pdocnode2,
						tkwredefnode3,
						pvisibilitynode4,
						patidnode6,
						null,
						listnode9,
						null,
						null
					)
					node_list = pannotationnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33873,2--33910,4

nitc $ ReduceAction905 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode7 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var patidnode5 = nodearraylist2
					assert patidnode5 isa nullable AAtid
					var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
						pdocnode2,
						null,
						null,
						patidnode5,
						null,
						listnode7,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33914,2--33936,4

nitc $ ReduceAction906 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode7 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var patidnode5 = nodearraylist2
					assert patidnode5 isa nullable AAtid
					var pannotationsnode9 = nodearraylist3
					assert pannotationsnode9 isa nullable AAnnotations
					var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
						pdocnode2,
						null,
						null,
						patidnode5,
						null,
						listnode7,
						null,
						pannotationsnode9
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33940,2--33965,4

nitc $ ReduceAction907 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var patidnode5 = nodearraylist2
					assert patidnode5 isa nullable AAtid
					var toparnode6 = nodearraylist3
					assert toparnode6 isa nullable TOpar
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var tcparnode9 = nodearraylist6
					assert tcparnode9 isa nullable TCpar
					var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
						pdocnode2,
						null,
						null,
						patidnode5,
						toparnode6,
						listnode8,
						tcparnode9,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:33969,2--34002,4

nitc $ ReduceAction908 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist7 = p.pop
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var patidnode5 = nodearraylist2
					assert patidnode5 isa nullable AAtid
					var toparnode6 = nodearraylist3
					assert toparnode6 isa nullable TOpar
					var listnode7 = nodearraylist5
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var tcparnode9 = nodearraylist6
					assert tcparnode9 isa nullable TCpar
					var pannotationsnode10 = nodearraylist7
					assert pannotationsnode10 isa nullable AAnnotations
					var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
						pdocnode2,
						null,
						null,
						patidnode5,
						toparnode6,
						listnode8,
						tcparnode9,
						pannotationsnode10
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34006,2--34042,4

nitc $ ReduceAction909 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode8 = new Array[Object]
					var pdocnode2 = nodearraylist1
					assert pdocnode2 isa nullable ADoc
					var patidnode5 = nodearraylist2
					assert patidnode5 isa nullable AAtid
					var listnode7 = nodearraylist3
					assert listnode7 isa Array[Object]
					listnode8 = concat(listnode8, listnode7)
					var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
						pdocnode2,
						null,
						null,
						patidnode5,
						null,
						listnode8,
						null,
						null
					)
					node_list = ppropdefnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34046,2--34072,4

nitc $ ReduceAction913 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var ptypenode2 = nodearraylist1
					assert ptypenode2 isa nullable AType
					var pexprnode1: nullable ATypeExpr = new ATypeExpr.init_atypeexpr(
						ptypenode2
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34076,2--34087,4

nitc $ ReduceAction916 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var pmethidnode3 = nodearraylist4
					assert pmethidnode3 isa nullable AMethid
					var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
						pexprnode2,
						pmethidnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34091,2--34108,4

nitc $ ReduceAction917 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode3 = nodearraylist1
					assert pexprnode3 isa nullable AExpr
					var tquestnode4 = nodearraylist2
					assert tquestnode4 isa nullable TQuest
					var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode3,
						tquestnode4
					)
					var pmethidnode5 = nodearraylist5
					assert pmethidnode5 isa nullable AMethid
					var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
						pexprnode2,
						pmethidnode5
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34112,2--34136,4

nitc $ ReduceAction918 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					var pmethidnode3 = nodearraylist1
					assert pmethidnode3 isa nullable AMethid
					var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
						pexprnode2,
						pmethidnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34140,2--34153,4

nitc $ ReduceAction919 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pannotationsnode2 = nodearraylist1
					assert pannotationsnode2 isa nullable AAnnotations
					var pexprnode1: nullable AAtExpr = new AAtExpr.init_aatexpr(
						pannotationsnode2
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34157,2--34168,4

nitc $ ReduceAction920 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tidnode2 = nodearraylist1
					assert tidnode2 isa nullable TId
					var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
						tidnode2
					)
					node_list = patidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34172,2--34183,4

nitc $ ReduceAction921 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwexternnode2 = nodearraylist1
					assert tkwexternnode2 isa nullable TKwextern
					var patidnode1: nullable AKwexternAtid = new AKwexternAtid.init_akwexternatid(
						tkwexternnode2
					)
					node_list = patidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34187,2--34198,4

nitc $ ReduceAction922 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwabstractnode2 = nodearraylist1
					assert tkwabstractnode2 isa nullable TKwabstract
					var patidnode1: nullable AKwabstractAtid = new AKwabstractAtid.init_akwabstractatid(
						tkwabstractnode2
					)
					node_list = patidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34202,2--34213,4

nitc $ ReduceAction923 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var toparnode2 = nodearraylist1
					assert toparnode2 isa nullable TOpar
					var listnode3 = nodearraylist3
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tcparnode5 = nodearraylist4
					assert tcparnode5 isa nullable TCpar
					var pexprsnode1: nullable AParExprs = new AParExprs.init_aparexprs(
						toparnode2,
						listnode4,
						tcparnode5
					)
					node_list = pexprsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34217,2--34239,4

nitc $ ReduceAction924 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var toparnode2 = nodearraylist1
					assert toparnode2 isa nullable TOpar
					var tcparnode4 = nodearraylist3
					assert tcparnode4 isa nullable TCpar
					var pexprsnode1: nullable AParExprs = new AParExprs.init_aparexprs(
						toparnode2,
						listnode3,
						tcparnode4
					)
					node_list = pexprsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34243,2--34261,4

nitc $ ReduceAction926 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					if pexprnode2 != null then
						listnode3.add(pexprnode2)
					end
					var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode3
					)
					node_list = pexprsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34265,2--34280,4

nitc $ ReduceAction928 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var listnode2 = new Array[Object]
					var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode2
					)
					node_list = pexprsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34284,2--34293,4

nitc $ ReduceAction929 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var tobranode2 = nodearraylist1
					assert tobranode2 isa nullable TObra
					var listnode3 = nodearraylist3
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tcbranode5 = nodearraylist4
					assert tcbranode5 isa nullable TCbra
					var pexprsnode1: nullable ABraExprs = new ABraExprs.init_abraexprs(
						tobranode2,
						listnode4,
						tcbranode5
					)
					node_list = pexprsnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34297,2--34319,4

nitc $ ReduceAction931 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var pexprnode1 = nodearraylist1
					var listnode2 = nodearraylist3
					assert listnode2 isa Array[Object]
					if pexprnode1 != null then
						listnode3.add(pexprnode1)
					end
					listnode3 = concat(listnode3, listnode2)
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34323,2--34339,4

nitc $ ReduceAction932 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode1 = nodearraylist3
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34343,2--34353,4

nitc $ ReduceAction933 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var listnode1 = nodearraylist3
					assert listnode1 isa Array[Object]
					listnode2 = concat(listnode2, listnode1)
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34357,2--34371,4

nitc $ ReduceAction935 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var tidnode1 = nodearraylist1
					if tidnode1 != null then
						listnode2.add(tidnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34375,2--34386,4

nitc $ ReduceAction936 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var tidnode2 = nodearraylist4
					listnode3 = concat(listnode3, listnode1)
					if tidnode2 != null then
						listnode3.add(tidnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34390,2--34407,4

nitc $ ReduceAction937 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var tidnode4 = nodearraylist1
					assert tidnode4 isa nullable TId
					var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
						null,
						listnode3,
						tidnode4
					)
					node_list = pmodulenamenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34411,2--34425,4

nitc $ ReduceAction938 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode3 = nodearraylist1
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tidnode5 = nodearraylist2
					assert tidnode5 isa nullable TId
					var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
						null,
						listnode4,
						tidnode5
					)
					node_list = pmodulenamenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34429,2--34447,4

nitc $ ReduceAction939 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var tquadnode2 = nodearraylist1
					assert tquadnode2 isa nullable TQuad
					var tidnode4 = nodearraylist3
					assert tidnode4 isa nullable TId
					var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
						tquadnode2,
						listnode3,
						tidnode4
					)
					node_list = pmodulenamenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34451,2--34469,4

nitc $ ReduceAction940 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var tquadnode2 = nodearraylist1
					assert tquadnode2 isa nullable TQuad
					var listnode3 = nodearraylist3
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tidnode5 = nodearraylist4
					assert tidnode5 isa nullable TId
					var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
						tquadnode2,
						listnode4,
						tidnode5
					)
					node_list = pmodulenamenode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34473,2--34495,4

nitc $ ReduceAction941 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var tclassidnode3 = nodearraylist1
					assert tclassidnode3 isa nullable TClassid
					var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
						listnode2,
						tclassidnode3
					)
					node_list = pqualifiednode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34499,2--34512,4

nitc $ ReduceAction942 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode2 = nodearraylist1
					assert listnode2 isa Array[Object]
					listnode3 = concat(listnode3, listnode2)
					var tclassidnode4 = nodearraylist2
					assert tclassidnode4 isa nullable TClassid
					var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
						listnode3,
						tclassidnode4
					)
					node_list = pqualifiednode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34516,2--34533,4

nitc $ ReduceAction943 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode2 = nodearraylist1
					assert listnode2 isa Array[Object]
					listnode3 = concat(listnode3, listnode2)
					var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
						listnode3,
						null
					)
					node_list = pqualifiednode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34537,2--34551,4

nitc $ ReduceAction945 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tclassidnode3 = nodearraylist1
					assert tclassidnode3 isa nullable TClassid
					var pqclassidnode1: nullable AQclassid = new AQclassid.init_aqclassid(
						null,
						tclassidnode3
					)
					node_list = pqclassidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34555,2--34567,4

nitc $ ReduceAction946 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var tclassidnode4 = nodearraylist1
					assert tclassidnode4 isa nullable TClassid
					var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
						listnode3,
						tclassidnode4
					)
					var tclassidnode5 = nodearraylist2
					assert tclassidnode5 isa nullable TClassid
					var pqclassidnode1: nullable AQclassid = new AQclassid.init_aqclassid(
						pqualifiednode2,
						tclassidnode5
					)
					node_list = pqclassidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34571,2--34591,4

nitc $ ReduceAction947 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode3 = nodearraylist1
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var tclassidnode5 = nodearraylist2
					assert tclassidnode5 isa nullable TClassid
					var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
						listnode4,
						tclassidnode5
					)
					var tclassidnode6 = nodearraylist3
					assert tclassidnode6 isa nullable TClassid
					var pqclassidnode1: nullable AQclassid = new AQclassid.init_aqclassid(
						pqualifiednode2,
						tclassidnode6
					)
					node_list = pqclassidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34595,2--34619,4

nitc $ ReduceAction948 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode4 = new Array[Object]
					var listnode3 = nodearraylist1
					assert listnode3 isa Array[Object]
					listnode4 = concat(listnode4, listnode3)
					var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
						listnode4,
						null
					)
					var tclassidnode6 = nodearraylist2
					assert tclassidnode6 isa nullable TClassid
					var pqclassidnode1: nullable AQclassid = new AQclassid.init_aqclassid(
						pqualifiednode2,
						tclassidnode6
					)
					node_list = pqclassidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34623,2--34644,4

nitc $ ReduceAction949 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pmethidnode1 = nodearraylist1
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34648,2--34655,4

nitc $ ReduceAction950 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pmethidnode1 = nodearraylist2
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34659,2--34667,4

nitc $ ReduceAction951 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pmethidnode1 = nodearraylist3
					node_list = pmethidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34671,2--34680,4

nitc $ ReduceAction953 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tidnode1 = nodearraylist1
					node_list = tidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34684,2--34693,4

nitc $ ReduceAction954 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tclassidnode1 = nodearraylist1
					node_list = tclassidnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34697,2--34706,4

nitc $ ReduceAction956 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var tkwendnode1 = nodearraylist1
					node_list = tkwendnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34710,2--34717,4

nitc $ ReduceAction957 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34721,2--34726,4

nitc $ ReduceAction960 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode2 = nodearraylist1
					assert listnode2 isa Array[Object]
					listnode3 = concat(listnode3, listnode2)
					var pdocnode1: nullable ADoc = new ADoc.init_adoc(
						listnode3
					)
					node_list = pdocnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34730,2--34743,4

nitc $ ReduceAction961 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode2 = nodearraylist2
					assert listnode2 isa Array[Object]
					listnode3 = concat(listnode3, listnode2)
					var pdocnode1: nullable ADoc = new ADoc.init_adoc(
						listnode3
					)
					node_list = pdocnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34747,2--34761,4

nitc $ ReduceAction964 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					node_list = null
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34765,2--34772,4

nitc $ ReduceAction966 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					node_list = null
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34776,2--34784,4

nitc $ ReduceAction967 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode1 = nodearraylist2
					node_list = pdocnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34788,2--34796,4

nitc $ ReduceAction968 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode1 = nodearraylist3
					node_list = pdocnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34800,2--34809,4

nitc $ ReduceAction970 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pdocnode1 = nodearraylist4
					node_list = pdocnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34813,2--34823,4

nitc $ ReduceAction972 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var pdocnode1 = nodearraylist1
					node_list = pdocnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34827,2--34834,4

nitc $ ReduceAction973 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34838,2--34842,4

nitc $ ReduceAction976 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34846,2--34852,4

nitc $ ReduceAction1515 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tkwissetnode2 = nodearraylist1
					assert tkwissetnode2 isa nullable TKwisset
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var tattridnode4 = nodearraylist4
					assert tattridnode4 isa nullable TAttrid
					var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
						tkwissetnode2,
						pexprnode3,
						tattridnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34856,2--34876,4

nitc $ ReduceAction1516 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var tidnode6 = nodearraylist3
					assert tidnode6 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						null,
						tidnode6
					)
					var pexprsnode7 = nodearraylist4
					assert pexprsnode7 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34880,2--34907,4

nitc $ ReduceAction1517 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var tidnode6 = nodearraylist3
					assert tidnode6 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						null,
						tidnode6
					)
					var listnode8 = new Array[Object]
					var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode8
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode7
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34911,2--34939,4

nitc $ ReduceAction1518 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode6 = new Array[Object]
					var tclassidnode7 = nodearraylist3
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist4
					assert tidnode8 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode8
					)
					var pexprsnode9 = nodearraylist5
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34943,2--34978,4

nitc $ ReduceAction1519 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode6 = new Array[Object]
					var tclassidnode7 = nodearraylist3
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist4
					assert tidnode8 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:34982,2--35018,4

nitc $ ReduceAction1520 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist6 = p.pop
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist3
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var tclassidnode8 = nodearraylist4
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist5
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var pexprsnode10 = nodearraylist6
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35022,2--35061,4

nitc $ ReduceAction1521 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist3
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var tclassidnode8 = nodearraylist4
					assert tclassidnode8 isa nullable TClassid
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						tclassidnode8
					)
					var tidnode9 = nodearraylist5
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35065,2--35105,4

nitc $ ReduceAction1522 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist3
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						null
					)
					var tidnode9 = nodearraylist4
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var pexprsnode10 = nodearraylist5
					assert pexprsnode10 isa nullable AExprs
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35109,2--35145,4

nitc $ ReduceAction1523 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var tampnode2 = nodearraylist1
					assert tampnode2 isa nullable TAmp
					var pexprnode3 = nodearraylist2
					assert pexprnode3 isa nullable AExpr
					var listnode7 = new Array[Object]
					var listnode6 = nodearraylist3
					assert listnode6 isa Array[Object]
					listnode7 = concat(listnode7, listnode6)
					var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
						listnode7,
						null
					)
					var tidnode9 = nodearraylist4
					assert tidnode9 isa nullable TId
					var pqidnode4: nullable AQid = new AQid.init_aqid(
						pqualifiednode5,
						tidnode9
					)
					var listnode11 = new Array[Object]
					var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode11
					)
					var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
						tampnode2,
						pexprnode3,
						pqidnode4,
						pexprsnode10
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35149,2--35186,4

nitc $ ReduceAction1525 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tattridnode3 = nodearraylist3
					assert tattridnode3 isa nullable TAttrid
					var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
						pexprnode2,
						tattridnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35190,2--35206,4

nitc $ ReduceAction1526 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tidnode5 = nodearraylist2
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var pexprsnode6 = nodearraylist3
					assert pexprsnode6 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35210,2--35233,4

nitc $ ReduceAction1527 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tidnode5 = nodearraylist2
					assert tidnode5 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						null,
						tidnode5
					)
					var listnode7 = new Array[Object]
					var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode7
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode6
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35237,2--35261,4

nitc $ ReduceAction1528 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist2
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist3
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var pexprsnode8 = nodearraylist4
					assert pexprsnode8 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35265,2--35296,4

nitc $ ReduceAction1529 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode5 = new Array[Object]
					var tclassidnode6 = nodearraylist2
					assert tclassidnode6 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode5,
						tclassidnode6
					)
					var tidnode7 = nodearraylist3
					assert tidnode7 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode7
					)
					var listnode9 = new Array[Object]
					var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode9
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode8
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35300,2--35332,4

nitc $ ReduceAction1530 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist5 = p.pop
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist2
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist3
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist4
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist5
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35336,2--35371,4

nitc $ ReduceAction1531 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist2
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var tclassidnode7 = nodearraylist3
					assert tclassidnode7 isa nullable TClassid
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						tclassidnode7
					)
					var tidnode8 = nodearraylist4
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35375,2--35411,4

nitc $ ReduceAction1532 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist2
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var pexprsnode9 = nodearraylist4
					assert pexprsnode9 isa nullable AExprs
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35415,2--35447,4

nitc $ ReduceAction1533 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var listnode6 = new Array[Object]
					var listnode5 = nodearraylist2
					assert listnode5 isa Array[Object]
					listnode6 = concat(listnode6, listnode5)
					var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
						listnode6,
						null
					)
					var tidnode8 = nodearraylist3
					assert tidnode8 isa nullable TId
					var pqidnode3: nullable AQid = new AQid.init_aqid(
						pqualifiednode4,
						tidnode8
					)
					var listnode10 = new Array[Object]
					var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode10
					)
					var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
						pexprnode2,
						pqidnode3,
						pexprsnode9
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35451,2--35484,4

nitc $ ReduceAction1536 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwinitnode3 = nodearraylist2
					assert tkwinitnode3 isa nullable TKwinit
					var pexprsnode4 = nodearraylist3
					assert pexprsnode4 isa nullable AExprs
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35488,2--35507,4

nitc $ ReduceAction1537 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tkwinitnode3 = nodearraylist2
					assert tkwinitnode3 isa nullable TKwinit
					var listnode5 = new Array[Object]
					var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
						listnode5
					)
					var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
						pexprnode2,
						tkwinitnode3,
						pexprsnode4
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35511,2--35531,4

nitc $ ReduceAction1564 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode1 = nodearraylist1
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35535,2--35544,4

nitc $ ReduceAction1565 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist4 = p.pop
					var nodearraylist3 = p.pop
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var pexprnode2 = nodearraylist1
					assert pexprnode2 isa nullable AExpr
					var tquestnode3 = nodearraylist2
					assert tquestnode3 isa nullable TQuest
					var pexprnode1: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
						pexprnode2,
						tquestnode3
					)
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35548,2--35565,4

nitc $ ReduceAction1566 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
					node_list = pexprnode1
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35569,2--35575,4

nitc $ ReduceAction1750 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pimportnode1 = nodearraylist1
					if pimportnode1 != null then
						listnode2.add(pimportnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35579,2--35590,4

nitc $ ReduceAction1751 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pimportnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if pimportnode2 != null then
						listnode3.add(pimportnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35594,2--35609,4

nitc $ ReduceAction1752 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pexterncodeblocknode1 = nodearraylist1
					if pexterncodeblocknode1 != null then
						listnode2.add(pexterncodeblocknode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35613,2--35624,4

nitc $ ReduceAction1753 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pexterncodeblocknode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if pexterncodeblocknode2 != null then
						listnode3.add(pexterncodeblocknode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35628,2--35643,4

nitc $ ReduceAction1754 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pclassdefnode1 = nodearraylist1
					if pclassdefnode1 != null then
						listnode2.add(pclassdefnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35647,2--35658,4

nitc $ ReduceAction1755 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pclassdefnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if pclassdefnode2 != null then
						listnode3.add(pclassdefnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35662,2--35677,4

nitc $ ReduceAction1757 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pformaldefnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if pformaldefnode2 != null then
						listnode3.add(pformaldefnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35681,2--35696,4

nitc $ ReduceAction1759 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var ppropdefnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if ppropdefnode2 != null then
						listnode3.add(ppropdefnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35700,2--35715,4

nitc $ ReduceAction1761 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pannotationnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if pannotationnode2 != null then
						listnode3.add(pannotationnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35719,2--35734,4

nitc $ ReduceAction1762 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pparamnode1 = nodearraylist1
					if pparamnode1 != null then
						listnode2.add(pparamnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35738,2--35749,4

nitc $ ReduceAction1763 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pparamnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if pparamnode2 != null then
						listnode3.add(pparamnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35753,2--35768,4

nitc $ ReduceAction1764 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var pexterncallnode1 = nodearraylist1
					if pexterncallnode1 != null then
						listnode2.add(pexterncallnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35772,2--35783,4

nitc $ ReduceAction1765 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pexterncallnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if pexterncallnode2 != null then
						listnode3.add(pexterncallnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35787,2--35802,4

nitc $ ReduceAction1767 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var ptypenode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if ptypenode2 != null then
						listnode3.add(ptypenode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35806,2--35821,4

nitc $ ReduceAction1769 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var pexprnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if pexprnode2 != null then
						listnode3.add(pexprnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35825,2--35840,4

nitc $ ReduceAction1775 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var listnode2 = nodearraylist2
					assert listnode2 isa Array[Object]
					listnode3 = concat(listnode3, listnode1)
					listnode3 = concat(listnode3, listnode2)
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35844,2--35858,4

nitc $ ReduceAction1783 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var tidnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if tidnode2 != null then
						listnode3.add(tidnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35862,2--35877,4

nitc $ ReduceAction1784 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist1 = p.pop
					var listnode2 = new Array[Object]
					var tcommentnode1 = nodearraylist1
					if tcommentnode1 != null then
						listnode2.add(tcommentnode1)
					end
					node_list = listnode2
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35881,2--35892,4

nitc $ ReduceAction1785 :: action
	redef fun action(p: Parser)
	do
					var node_list: nullable Object = null
					var nodearraylist2 = p.pop
					var nodearraylist1 = p.pop
					var listnode3 = new Array[Object]
					var listnode1 = nodearraylist1
					assert listnode1 isa Array[Object]
					var tcommentnode2 = nodearraylist2
					listnode3 = concat(listnode3, listnode1)
					if tcommentnode2 != null then
						listnode3.add(tcommentnode2)
					end
					node_list = listnode3
					p.push(p.go_to(_goto), node_list)
	end
src/parser/parser.nit:35896,2--35911,4